/**
  * Test add a default relation
  */
 public function testAddModuleToAdminRole()
 {
     $roleModel = new Phprojekt_Role_RoleModulePermissions();
     $roleModel->addModuleToAdminRole(1);
     $return = $roleModel->getRoleModulePermissionsById(1);
     $this->assertEquals(ksort($this->_expected), ksort($return));
 }
 /**
  * Returns all the modules and the access for one roleId.
  *
  * Returns a list of all the modules with:
  * <pre>
  *  - id       => id of the module.
  *  - name     => Name of the module.
  *  - label    => Display for the module.
  *  - none     => True or false for none access.
  *  - read     => True or false for read access.
  *  - write    => True or false for write access.
  *  - access   => True or false for access access.
  *  - create   => True or false for create access.
  *  - copy     => True or false for copy access.
  *  - delete   => True or false for delete access.
  *  - download => True or false for download access.
  *  - admin    => True or false for admin access.
  * </pre>
  *
  * OPTIONAL request parameters:
  * <pre>
  *  - integer <b>id</b> The role id for consult.
  * </pre>
  *
  * The return is in JSON format.
  *
  * @return void
  */
 public function jsonGetModulesAccessAction()
 {
     $role = new Phprojekt_Role_RoleModulePermissions();
     $roleId = (int) $this->getRequest()->getParam('id', null);
     $modules = $role->getRoleModulePermissionsById($roleId);
     Phprojekt_Converter_Json::echoConvert($modules);
 }
Example #3
0
 /**
  * Assign all rights to Zend_Acls.
  *
  * @return void
  */
 private function _registerRights()
 {
     $role = new Phprojekt_Role_RoleModulePermissions();
     $rights = array();
     foreach ($role->fetchAll(null, 'role_id ASC') as $right) {
         $access = Phprojekt_Acl::convertBitmaskToArray($right->access);
         foreach ($access as $name => $value) {
             if ($value) {
                 $rights[$right->roleId][$name][] = $right->moduleId;
             }
         }
     }
     foreach ($rights as $roleId => $accessData) {
         foreach ($accessData as $access => $modules) {
             foreach ($modules as $moduleId) {
                 $resources = array();
                 if (!$this->has($moduleId)) {
                     $this->add(new Zend_Acl_Resource($moduleId));
                 }
                 $resources[] = $moduleId;
             }
             $this->allow($roleId, $modules, $access);
         }
     }
 }
Example #4
0
 /**
  * Prevent delete modules from the Frontend.
  * For delete modules use safeDelete.
  *
  * @return void
  */
 public function delete()
 {
     // Delete all the project-module relations
     $project = new Project_Models_ProjectModulePermissions();
     $project->deleteModuleRelation($this->id);
     // Delete all the role-module relations
     $role = new Phprojekt_Role_RoleModulePermissions();
     $role->deleteModuleRelation($this->id);
     // Delete the items and tags
     $tag = new Phprojekt_Tags();
     $model = Phprojekt_Loader::getModel($this->name, $this->name);
     if ($model instanceof Phprojekt_ActiveRecord_Abstract) {
         $results = $model->fetchAll();
         if (is_array($results)) {
             foreach ($results as $record) {
                 $tag->deleteTagsForModuleItem($this->id, $record->id);
                 // @todo: Improve the delete routine for modules with a lot of entries.
                 $record->delete();
             }
         }
     }
     // Delete Files
     $this->_deleteFolder(PHPR_USER_CORE_PATH . $this->name);
     // Delete module entry
     parent::delete();
 }