private function _load(Administer_Model_Modules $m)
 {
     try {
         $load_data = $m->get_load();
         if ($load_data) {
             foreach ($load_data as $class => $options) {
                 switch ($class) {
                     case 'resource':
                     case 'resources':
                         Model_Resources::getInstance()->add_resources($options, $m->folder, $m->is_active());
                         break;
                     case 'route':
                     case 'routes':
                         Model_Zupalroutes::getInstance()->add_routes($options, $m->folder, $m->is_active());
                         break;
                     default:
                         throw new Exception("can't load resource {$class}");
                 }
             }
         }
         $m->resource_loaded = TRUE;
         $m->save();
     } catch (Exception $e) {
         error_log(__METHOD__ . ': error loading ' . $m->folder);
         throw $e;
     }
 }
 public function load_resources()
 {
     $res_selects = array();
     foreach (Model_Resources::getInstance()->find_all(Model_Resources::getInstance()->table()->idField()) as $res) {
         error_log(__METHOD__ . ': loading resource ' . $res->identity());
         $spec = array('label' => $res->title);
         $res_name = 'resource_' . $res->identity();
         $res_selects[] = $res_name;
         $spec['name'] = $res_name;
         $spec['multiOptions'] = self::$res_options;
         $select = new Zend_Form_Element_Select($spec);
         $domain = $this->get_domain();
         if ($domain && $domain->isSaved()) {
             if ($value = Model_Acl::find_acl($res, $domain)) {
                 error_log(__METHOD__ . ': value = ' . $value);
                 $select->setValue($value);
             } else {
                 error_log(__METHOD__ . ': no value for res = ' . $res->identity() . ', role = ' . $domain->identity());
             }
         } else {
             error_log(__METHOD__ . ': domain not saved');
         }
         $this->addElement($select);
     }
 }
Beispiel #3
0
 /**
  *
  * @return <type>
  */
 protected function _init_resources_menu()
 {
     foreach (Model_Resources::getInstance()->findAll('resource_id') as $resource) {
         $this->resource->addMultiOption($resource->identity(), $resource->title);
     }
 }
Beispiel #4
0
 /**
  *
  * @param boolean $pReload
  * @return Zend_Acl
  */
 public static function acl($pReload = FALSE)
 {
     if ($pReload || is_null(self::$_acl)) {
         $acl = new Zend_Acl();
         foreach (Model_Resources::getInstance()->find_all() as $res) {
             $acl->add($res);
         }
         foreach (Model_Roles::getInstance()->find_all() as $role) {
             $acl->addRole($role);
         }
         foreach (self::getInstance()->find_all() as $grant) {
             if ($grant->allow) {
                 $acl->allow($grant->role, $grant->resource);
             } else {
                 $acl->deny($grant->role, $grant->resource);
             }
         }
         self::$_acl = $acl;
     }
     return self::$_acl;
 }
 /**
  *
  *
  * @return void
  */
 public function load_resources()
 {
     $options = array(0 => '(none)');
     foreach (Model_Resources::getInstance()->find_all() as $res) {
         $options[$res->identity()] = $res->title;
     }
     $this->resource->setMultiOptions($options);
 }
 /**
  *
  */
 public function roleseditexecuteAction()
 {
     $id = $this->_getParam('role_id');
     $params = array('role_id' => $id);
     $form = new Administer_Form_Zupalroles($id);
     if ($form->isValid($this->_getAllParams())) {
         $form->save();
         foreach (Model_Resources::getInstance()->findAll() as $res) {
             $resid = $res->identity();
             if ($resvalue = $this->_getParam("resource_{$resid}")) {
                 Model_Acl::getInstance()->set_acl($resid, $id, $resvalue);
             }
         }
         $params['message'] = 'Role Saved';
     } else {
         $params['error'] = 'Cannot save form';
         $params['reload'] = TRUE;
         $params = array_merge($this->_getAllParams(), $params);
     }
     $this->_forward('rolesedit', 'users', 'administer', $params);
 }
Beispiel #7
0
 /**
  *
  * @return <type>
  */
 protected function _init_resources_menu()
 {
     $options = Model_Resources::getInstance()->as_list('(none)');
     $this->resource->set_data_source($options);
 }