/** * Add a staff browse edit page to the menu, * * @param string $label * @param array $other * @return \Gems_Menu_SubMenuItem */ public function addStaffPage($label, array $other = array()) { if ($this->user->hasPrivilege('pr.staff.edit.all')) { $filter = array_keys($this->escort->getUtil()->getDbLookup()->getOrganizations()); } else { $filter = array_keys($this->user->getAllowedOrganizations()); } $page = $this->addPage($label, 'pr.staff', 'staff', 'index', $other); $page->addAutofilterAction(); $createPage = $page->addCreateAction(); $showPage = $page->addShowAction(); $pages[] = $showPage->addEditAction(); $pages[] = $showPage->addAction($this->_('Reset password'), 'pr.staff.edit', 'reset')->setModelParameters(1)->addParameterFilter('gsf_active', 1); $showPage->addAction($this->_('Send Mail'), 'pr.staff.edit', 'mail')->setModelParameters(1)->addParameterFilter('can_mail', 1, 'gsf_active', 1, 'gsf_id_organization', $filter); $pages = $pages + $showPage->addDeReactivateAction('gsf_active', 1, 0); // LOG CONTROLLER $logPage = $showPage->addPage($this->_('Activity overview'), 'pr.staff-log', 'staff-log', 'index')->setModelParameters(1)->addParameterFilter('gsf_id_organization', $filter); $logPage->addAutofilterAction(); $logPage->addShowAction()->setModelParameters(1)->addNamedParameters('log', 'gla_id'); $page->addExportAction(); $page->addImportAction(); if (!$this->user->hasPrivilege('pr.staff.edit.all')) { foreach ($pages as $sub_page) { $sub_page->addParameterFilter('gsf_id_organization', $filter, 'accessible_role', 1); } } return $page; }