/** * Returns all global modules. * * Returns a list of all the global modules with: * <pre> * - id => id of the module. * - name => Name of the module. * - label => Display for the module. * </pre> * Also return in the metadata, if the user is an admin or not. * * The return is in JSON format. * * @return array */ function jsonGetGlobalModulesAction() { $modules = array(); $model = new Phprojekt_Module_Module(); foreach ($model->fetchAll('active = 1 AND (save_type = 1 OR save_type = 2)', 'name ASC') as $module) { $modules['data'][$module->id] = array(); $modules['data'][$module->id]['id'] = $module->id; $modules['data'][$module->id]['name'] = $module->name; $modules['data'][$module->id]['label'] = $module->label; } $modules['metadata'] = Phprojekt_Auth::isAdminUser(); Phprojekt_Converter_Json::echoConvert($modules); }
/** * Return all the modules in an array and the permission if exists. * * @param integer $projectId The Project ID. * * @return array Array with 'id', 'name', 'label' and 'inProject'. */ function getProjectModulePermissionsById($projectId) { $modules = array(); $model = new Phprojekt_Module_Module(); foreach ($model->fetchAll('active = 1 AND (save_type = 0 OR save_type = 2)', 'name ASC') as $module) { $modules['data'][$module->id] = array(); $modules['data'][$module->id]['id'] = (int) $module->id; $modules['data'][$module->id]['name'] = $module->name; $modules['data'][$module->id]['label'] = Phprojekt::getInstance()->translate($module->label, null, $module->name); $modules['data'][$module->id]['inProject'] = false; } $select = Phprojekt::getInstance()->getDb()->select(); $select->from(array('pmp' => 'project_module_permissions'), 'module_id')->joinRight(array('m' => 'module'), 'm.id = pmp.module_id AND (m.save_type = 0 OR m.save_type = 2)', array())->where('pmp.project_id = ?', (int) $projectId)->where('m.active = 1'); foreach ($select->query()->fetchAll(Zend_Db::FETCH_COLUMN) as $moduleId) { $modules['data'][$moduleId]['inProject'] = true; } return $modules; }
/** * Return all the modules in an array and the access if exists. * * @param integer $roleId The role ID. * * @return array Array with 'id', 'name', 'label' and the access. */ public function getRoleModulePermissionsById($roleId) { $modules = array(); $model = new Phprojekt_Module_Module(); foreach ($model->fetchAll('(save_type = 0 OR save_type = 2)', 'name ASC') as $module) { $modules['data'][$module->id] = array(); $modules['data'][$module->id]['id'] = $module->id; $modules['data'][$module->id]['name'] = $module->name; $modules['data'][$module->id]['label'] = Phprojekt::getInstance()->translate($module->label, null, $module->name); $modules['data'][$module->id] = array_merge($modules['data'][$module->id], Phprojekt_Acl::convertBitmaskToArray(0)); } $where = 'role_module_permissions.role_id = ' . (int) $roleId; foreach ($this->fetchAll($where) as $right) { if (isset($modules['data'][$right->moduleId])) { $modules['data'][$right->moduleId] = array_merge($modules['data'][$right->moduleId], Phprojekt_Acl::convertBitmaskToArray($right->access)); } } return $modules; }
/** * Test of json delete Module */ public function testJsonDelete() { $module = new Phprojekt_Module_Module(); $where = $this->sharedFixture->quoteInto('name = ?', 'test'); $ids = $module->fetchAll($where); $moduleId = $ids[0]->id; $this->setRequestUrl('Core/module/jsonDelete'); $this->request->setParam('id', $moduleId); $response = $this->getResponse(); $this->assertContains('The module was deleted correctly', $response); }