public static function loadFixtures(TBGScope $scope) { $roles = array(); $roles['Developer'] = array(array('permission' => 'page_project_allpages_access'), array('permission' => 'canseeproject'), array('permission' => 'canseeprojecthierarchy'), array('permission' => 'candoscrumplanning'), array('permission' => 'canvoteforissues'), array('permission' => 'canlockandeditlockedissues'), array('permission' => 'cancreateandeditissues'), array('permission' => 'caneditissue'), array('permission' => 'caneditissuecustomfields'), array('permission' => 'canaddextrainformationtoissues'), array('permission' => 'canpostseeandeditallcomments'), array('permission' => 'readarticle', 'module' => 'publish', 'target_id' => '%project_key%'), array('permission' => 'editarticle', 'module' => 'publish', 'target_id' => '%project_key%'), array('permission' => 'deletearticle', 'module' => 'publish', 'target_id' => '%project_key%')); $roles['Project manager'] = array(array('permission' => 'page_project_allpages_access'), array('permission' => 'canseeproject'), array('permission' => 'canseeprojecthierarchy'), array('permission' => 'candoscrumplanning'), array('permission' => 'canvoteforissues'), array('permission' => 'canlockandeditlockedissues'), array('permission' => 'cancreateandeditissues'), array('permission' => 'caneditissue'), array('permission' => 'caneditissuecustomfields'), array('permission' => 'canaddextrainformationtoissues'), array('permission' => 'canpostseeandeditallcomments'), array('permission' => 'readarticle', 'module' => 'publish', 'target_id' => '%project_key%'), array('permission' => 'editarticle', 'module' => 'publish', 'target_id' => '%project_key%'), array('permission' => 'deletearticle', 'module' => 'publish', 'target_id' => '%project_key%')); $roles['Tester'] = array(array('permission' => 'page_project_allpages_access'), array('permission' => 'canseeproject'), array('permission' => 'canseeprojecthierarchy'), array('permission' => 'canvoteforissues'), array('permission' => 'cancreateandeditissues'), array('permission' => 'caneditissuecustomfields'), array('permission' => 'canaddextrainformationtoissues'), array('permission' => 'canpostandeditcomments'), array('permission' => 'readarticle', 'module' => 'publish', 'target_id' => '%project_key%'), array('permission' => 'editarticle', 'module' => 'publish', 'target_id' => '%project_key%')); $roles['Documentation editor'] = array(array('permission' => 'page_project_allpages_access'), array('permission' => 'canseeproject'), array('permission' => 'canseeprojecthierarchy'), array('permission' => 'canvoteforissues'), array('permission' => 'cancreateandeditissues'), array('permission' => 'canaddextrainformationtoissues'), array('permission' => 'canpostandeditcomments'), array('permission' => 'readarticle', 'module' => 'publish', 'target_id' => '%project_key%'), array('permission' => 'editarticle', 'module' => 'publish', 'target_id' => '%project_key%')); foreach ($roles as $name => $permissions) { $role = new TBGRole(); $role->setName($name); $role->setScope($scope); $role->save(); foreach ($permissions as $k => $permission) { $p = new TBGRolePermission(); $p->setPermission($permission['permission']); if (array_key_exists('target_id', $permission)) { $p->setTargetID($permission['target_id']); } if (array_key_exists('module', $permission)) { $p->setModule($permission['module']); } $role->addPermission($p); } } }
public function runAddRole(TBGRequest $request) { if ($this->getUser()->canManageProject($this->selected_project)) { if ($request['role_name']) { $role = new TBGRole(); $role->setName($request['role_name']); $role->setProject($this->selected_project); $role->save(); return $this->renderJSON(array('content' => $this->getTemplateHTML('configuration/role', array('role' => $role)))); } $this->getResponse()->setHttpStatus(400); return $this->renderJSON(array('message' => $this->getI18n()->__('You must provide a role name'))); } $this->getResponse()->setHttpStatus(400); return $this->renderJSON(array('message' => $this->getI18n()->__('You do not have access to create new project roles'))); }
public function runConfigureRoles(TBGRequest $request) { if ($request->isPost()) { if (trim($request['role_name']) == '') { $this->getResponse()->setHttpStatus(400); return $this->renderJSON(array('error' => $this->getI18n()->__('You have to specify a name for this role'))); } $role = new TBGRole(); $role->setName($request['role_name']); $role->save(); return $this->renderJSON(array('content' => $this->getTemplateHTML('configuration/role', array('role' => $role)))); } $this->roles = TBGRole::getAll(); }