Exemple #1
0
 public function init()
 {
     $this->form = new User_Form_Edit();
     $this->form->removeElement(User::COL_PASSWORD);
     $this->form->removeElement(User_Form_Edit::PASSWORD_CLONE);
     $roleElement = new Zend_Form_Element_Select(User::COL_ROLE);
     $roleElement->setRequired(true);
     $roleElement->setOrder(1);
     $roleElement->setMultiOptions(array('reader' => 'reader', 'datamanager' => 'datamanager', 'ws-manager' => 'ws-manager', 'admin' => 'admin'));
     $this->form->addElement($roleElement, null, array('pos' => 1));
     $this->view->form = $this->form;
 }
 /**
  * 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;
 }
Exemple #3
0
 private function _countryRender($property)
 {
     $disp = $property . 'Display';
     $req = $property . 'Required';
     $seq = $property . 'Sequence';
     if ($this->{$disp}) {
         $countries = Cible_FunctionsGeneral::getCountries();
         if ($this->_addScript) {
             $this->jsLocationScript($countries);
         }
         $field = new Zend_Form_Element_Select($this->{$property});
         $field->setRequired($this->{$req})->setAttrib('class', 'stdSelect')->setValue($this->_countryDefaultVal)->setRegisterInArrayValidator(false)->setLabel($this->view->getCibleText('form_label' . $property));
         if ($this->{$seq}) {
             $field->setOrder($this->{$seq});
         }
         if ($this->{$req}) {
             $field->setAttrib('class', 'stdSelect ' . $req);
             $this->_addRequiredValidator($field);
         }
         foreach ($countries as $key => $country) {
             $field->addMultiOption($country['ID'], $country['name']);
         }
         $this->_form->addElement($field);
     }
 }