public function up($params = false)
 {
     $modelResources = new Modules_Access_Model_Resources();
     $modelRules = new Modules_Access_Model_Rules();
     foreach ($this->_resources as $resource) {
         $modelResources->insert($resource);
         $modelRules->addRule($resource['resource_name'], 'admin', 'allow');
         $modelRules->addRule($resource['resource_name'], 'user', 'deny');
     }
     $modelRules->addRule('admin_module_dbmigrations', 'admin', 'deny');
     $modelRules->addRule('admin_module_guitestcase', 'admin', 'deny');
     $modelRules->addRule('admin_module_logger', 'admin', 'deny');
     $modelRules->addRule('admin_module_zfdebuginit', 'admin', 'deny');
     $modelRules->addRule('admin_module_search', 'admin', 'deny');
 }
Esempio n. 2
0
 public function addAction()
 {
     $form = new Zetta_Form(Zend_Registry::get('config')->Access->form->resource);
     $routes = Modules_Router_Model_Router::getInstance()->getRoutesTreeHash();
     $menuIdElement = $form->getElement('route_id');
     $menuIdElement->addMultiOptions($routes);
     if ($resource_id = $this->getParam('resource')) {
         $resource = $this->_modelResources->getResource($resource_id)->toArray();
         $resource['type'] = 'free';
         if (preg_match('/route_(\\d*)/', $resource['resource_name'], $matches)) {
             $resource['route_id'] = $matches[1];
             $resource['type'] = 'router';
         }
         $this->view->resource = $resource;
         $form->setDefaults($resource);
         $form->getElement('type')->setAttrib('disabled', 'disabled');
         $form->getElement('resource_name')->setAttrib('disabled', 'disabled');
     }
     if (!sizeof($_POST) || !$form->isValid($_POST)) {
         $this->view->form = $form;
     } else {
         if ($form->getValue('type') == 'router') {
             $arrayData = array('resource_name' => $resource_name = 'route_' . $form->getValue('route_id'), 'description' => 'Ограничение доступа к разделу "' . trim($routes[$form->getValue('route_id')], '- ') . '"');
         } else {
             $arrayData = array('resource_name' => $resource_name = $form->getValue('resource_name'), 'description' => $form->getValue('description'));
         }
         if (!$arrayData['resource_name'] || !$arrayData['description']) {
             // проверка, чтобы не добавлялись пустые привелегии
             return $this->renderScript('admin/addComplete.ajax.phtml');
         }
         if ($resource_id) {
             $this->_modelResources->update($arrayData, $this->_modelResources->getAdapter()->quoteInto('resource_name = ?', $resource_id));
         } else {
             $this->_modelResources->insert($arrayData);
             // дадим доступ администраторам по умолчанию
             $this->_modelRules->addRule($resource_name, 'admin', 'allow');
         }
         $this->renderScript('admin/addComplete.ajax.phtml');
     }
 }