/** * choose action for widget controller */ public function chooseAction() { try { $mdlResource = new Acl_Model_Resource(); $modules = $mdlResource->getModules(); $widgets = array(); foreach ($modules as $module) { #echo APPLICATION_PATH.'/modules/'.$module->module.'<br>'; $widgetFile = APPLICATION_PATH . '/modules/' . $module->module . '/widgets.xml'; if (file_exists($widgetFile)) { #echo "si en ".$module->module.'<br>'; $sxe = new SimpleXMLElement($widgetFile, null, true); foreach ($sxe as $widget) { #Zend_Debug::dump($widget); $widgets[] = $widget; } } # } $this->view->widgets = $widgets; } catch (Exception $e) { $this->_helper->flashMessenger->addMessage(array('type' => 'error', 'header' => '', 'message' => $e->getMessage())); $this->_helper->redirector("list", "widget", "system"); } return; }
/** * extension action for index controller */ public function extensionAction() { // action body try { $translate = Zend_Registry::get('Zend_Translate'); $mdlResource = new Acl_Model_Resource(); $modules = $mdlResource->getModules(); $modData = array(); foreach ($modules as $module) { $moduleInfoFile = APPLICATION_PATH . '/modules/' . $module->module . '/about.xml'; if (file_exists($moduleInfoFile)) { $sxe = new SimpleXMLElement($moduleInfoFile, null, true); foreach ($sxe as $mod) { $modData[] = $mod; } } } $this->view->modules = $modData; } catch (Exception $e) { echo $e->getMessage(); } }
/** * Choose action for item controller * @throws Exception * @return NULL */ public function chooseAction() { // action body try { $translate = Zend_Registry::get('Zend_Translate'); $menuId = $this->getRequest()->getParam('menu', 0); $mdlMenu = new menu_Model_Menu(); $menu = $mdlMenu->find($menuId)->current(); if (!$menu) { throw new Exception($translate->translate("MENU_ROW_NOT_FOUND")); } $this->view->menu = $menu; $mdlResource = new Acl_Model_Resource(); $modules = $mdlResource->getModules(); $menus = array(); foreach ($modules as $module) { #echo APPLICATION_PATH.'/modules/'.$module->module.'<br>'; $menuFile = APPLICATION_PATH . '/modules/' . $module->module . '/menus.xml'; if (file_exists($menuFile)) { #echo "si en ".$module->module.'<br>'; $sxe = new SimpleXMLElement($menuFile, null, true); foreach ($sxe as $menuTemp) { #Zend_Debug::dump($widget); $menus[] = $menuTemp; } } # } $this->view->menuItemTypes = $menus; } catch (Exception $e) { $this->_helper->flashMessenger->addMessage(array('type' => 'error', 'header' => '', 'message' => $e->getMessage())); $this->redirect('menu-items/' . $menuId); } return; }
/** * Manage action for Permission controller * @throws Zend_Exception * @return NULL */ public function manageAction() { try { $translate = Zend_Registry::get('Zend_Translate'); $roleId = $this->getRequest()->getParam('role', 0); $mdlRole = new Acl_Model_Role(); $role = $mdlRole->find($roleId)->current(); if (!$role) { throw new Exception($translate->translate("LBL_ROW_NOT_FOUND")); } $select = $mdlRole->select()->order('priority DESC')->limit(1); $childRole = $role->findDependentRowset('Acl_Model_Role', null, $select)->current(); $frmManageResource = new Acl_Form_ManageResources(); $action = $this->_request->getBaseUrl() . "/acl/permission/update"; $frmManageResource->setAction($action); $frmManageResource->getElement('id')->setValue($role->id); $mdlResource = new Acl_Model_Resource(); $mdlPermission = new Acl_Model_Permission(); $modules = $mdlResource->getModules(); $zfelements = array(); $resourceDataIds = array(); $order = 1; foreach ($modules as $module) { $resources = $mdlResource->getByModule($module); if (!array_key_exists(strtolower($module->module), $zfelements)) { $zfelements[strtolower($module->module)] = array(); } foreach ($resources as $resource) { $resourceDataIds[] = $resource->id; $cbResource = new Zend_Form_Element_Select("cb_res_" . $resource->id); $zfelements[strtolower($module->module)][] = "cb_res_" . $resource->id; $lblResource = $resource->controller . ' / ' . $resource->actioncontroller; $cbResource->setLabel($lblResource); $childPrivilege = $childRole ? $mdlPermission->getByResource($resource, $childRole) : null; $rolePrivilege = $mdlPermission->getByResource($resource, $role); #var_dump($childPrivilege, $rolePrivilege, $lblResource); /*if ( strcasecmp($resource->controller, 'tag') == 0 && strcasecmp($resource->actioncontroller, 'list') == 0 ){ Zend_Debug::dump( $childPrivilege, 'child privilege' ); Zend_Debug::dump( $rolePrivilege, 'role privilege' ); }*/ if ($childPrivilege == null && $rolePrivilege == null) { $cbResource->addMultiOption('deny', $translate->translate("ACL_DENIED_DEFAULT")); $cbResource->addMultiOption('allow', $translate->translate("ACL_ALLOW")); } elseif (isset($rolePrivilege->privilege) && strcasecmp($rolePrivilege->privilege, 'allow') == 0) { $cbResource->addMultiOption('allow', $translate->translate("ACL_ALLOW")); $cbResource->addMultiOption('deny', $translate->translate("ACL_DENY")); } elseif (isset($rolePrivilege->privilege) && strcasecmp($rolePrivilege->privilege, 'deny') == 0) { $cbResource->addMultiOption('deny', $translate->translate("ACL_DENY")); $cbResource->addMultiOption('allow', $translate->translate("ACL_ALLOW")); } elseif ($childPrivilege && strcasecmp($childPrivilege->privilege, 'allow') == 0 && !$rolePrivilege) { $cbResource->addMultiOption('allow', sprintf($translate->translate("ACL_ALLOWED_INHERITED_FROM"), $privilege->name)); $cbResource->addMultiOption('deny', $translate->translate("ACL_DENY")); } elseif ($childPrivilege && strcasecmp($childPrivilege->privilege, 'deny') == 0 && !$rolePrivilege) { $cbResource->addMultiOption('deny', sprintf($translate->translate("ACL_DENIED_INHERITED_FROM"), $privilege->name)); $cbResource->addMultiOption('allow', $translate->translate("ACL_ALLOW")); } $cbResource->setOrder($order); $frmManageResource->addElement($cbResource); $order++; } } #$frmManageResource->getMessages() $resourceDataIds = implode(',', $resourceDataIds); $hrs = new Zend_Session_Namespace('resourceDataIds'); $hrs->hrs = $resourceDataIds; #$frmManageResource->getElement('hrs')->setValue( $resourceDataIds ); $this->view->modules = $modules; $this->view->zfelements = $zfelements; $this->view->role = $role; $this->view->formResources = $frmManageResource; $fields = array(); foreach ($frmManageResource->getElements() as $element) { $fields[] = $element->getName(); } $frmManageResource->addDisplayGroup($fields, 'form', array('legend' => "ACL_UPDATE_ROLE")); } catch (Exception $e) { $this->_helper->flashMessenger->addMessage(array('type' => 'error', 'header' => '', 'message' => $e->getMessage())); $this->_helper->redirector("list", "role", "acl"); } return null; }