public function members() { $pane = $this->pane_management->getPaneById(Project_Admin_UGroup_View_Members::IDENTIFIER); $controller_members = new Project_Admin_UGroup_UGroupController_Members($this->request, $this->ugroup, $pane); $validated_request = $controller_members->validateRequest($this->ugroup->getProjectId(), $this->request); $view = new Project_Admin_UGroup_View_Members($this->ugroup, $this->request, $this->ugroup_manager, $validated_request); $this->render($view); }
private function appendMembersForStaticGroups(DOMElement $ugroup_node, ProjectUGroup $ugroup) { if ($ugroup->getId() > ProjectUGroup::NONE) { foreach ($ugroup->getMembersUserName() as $user_name) { $this->appendChild($ugroup_node, 'member', $user_name); } } }
/** * Output repo management sub screen to the browser */ public function display() { project_admin_header(array('title' => $GLOBALS['Language']->getText('project_admin_editugroup', 'edit_ug'), 'group' => $this->ugroup->getProjectId(), 'help' => 'project-admin.html#creating-a-user-group')); echo '<h1><a href="/project/admin/ugroup.php?group_id=' . $this->ugroup->getProjectId() . '">' . $GLOBALS['Language']->getText('project_admin_utils', 'ug_admin') . '</a> - ' . $this->ugroup->getName() . '</h1>'; echo '<div class="tabbable tabs-left">'; echo '<ul class="nav nav-tabs">'; foreach ($this->panes as $key => $pane) { $this->displayTab($pane); } echo '</ul>'; echo '<div class="tab-content">'; echo '<div class="tab-pane active">'; echo $this->view->getContent(); echo '</div>'; echo '</div>'; $GLOBALS['HTML']->footer(array()); }
/** * Get the list of source ugroups by project * * @param Integer $sourceProject Id of the current soucrce project * @param ProjectUGroup $currentSource Currently bound ugroup * * @return Array */ private function getUgroupList($sourceProject, ProjectUGroup $currentSource = null) { $ugroupList = array(); $selected = false; $ugroups = ugroup_db_get_existing_ugroups($sourceProject); while ($ugroup = db_fetch_array($ugroups)) { $userGroup = new ProjectUGroup(array('ugroup_id' => $ugroup['ugroup_id'])); if (!$userGroup->isBound()) { if ($currentSource && $currentSource->getId() == $ugroup['ugroup_id']) { $selected = true; } $ugroupList[] = array('ugroup_id' => $ugroup['ugroup_id'], 'name' => $ugroup['name'], 'selected' => $selected); } } return $ugroupList; }
public function setSourceGroup(ProjectUGroup $ugroup = null) { $this->source_ugroup = $ugroup; $this->source_id = $ugroup === null ? null : $ugroup->getId(); }
public function getServersForUGroup(ProjectUGroup $ugroup) { $servers = array(); foreach ($this->dao->searchAllByUGroupId($ugroup->getProjectId(), $ugroup->getId()) as $row) { $servers[$row['id']] = $this->instantiateFromRow($row); } return $servers; }
public function getProject() { return $this->ugroup->getProject(); }
/** * @todo should be private * * @param Project $project * @param ProjectUGroup $ugroup * @param PFUser $user * @return \GitRepositoryWithPermissions */ public function getGerritRepositoriesWithPermissionsForUGroupAndProject(Project $project, ProjectUGroup $ugroup, PFUser $user) { $repositories = array(); $ugroups = $user->getUgroups($project->getID(), null); $ugroups[] = $ugroup->getId(); $dar = $this->dao->searchGerritRepositoriesWithPermissionsForUGroupAndProject($project->getID(), $ugroups); foreach ($dar as $row) { if (isset($repositories[$row['repository_id']])) { $repo_with_perms = $repositories[$row['repository_id']]; } else { $repo_with_perms = new GitRepositoryWithPermissions($this->instanciateFromRow($row)); $repositories[$row['repository_id']] = $repo_with_perms; } $repo_with_perms->addUGroupForPermissionType($row['permission_type'], $row['ugroup_id']); } return $repositories; }
public function itReturnsAStaticGroup() { $ugroup = new ProjectUGroup(array('ugroup_id' => 120, 'name' => 'Zoum_zoum_zen')); $this->assertEqual('Zoum_zoum_zen', $ugroup->getName()); $this->assertEqual('Zoum_zoum_zen', $ugroup->getTranslatedName()); $this->assertEqual('Zoum_zoum_zen', $ugroup->getNormalizedName()); }
public function resetUgroupMembers(ProjectUGroup $user_group, array $users_to_add) { $this->getDao()->startTransaction(); $user_group->removeAllUsers(); foreach ($users_to_add as $user) { $user_group->addUser($user); } $this->getDao()->commit(); }
/** * Get the list of of ugroups used in this field * * * @return array, the list of all ugroups with id and name */ protected function getSoapBindingList() { $ugroups = array(); foreach ($this->value_function as $ugroup) { if ($ugroup) { switch ($ugroup) { case 'group_members': $ugroups[] = array(self::SOAP_BINDING_LIST_ID => $GLOBALS['UGROUP_PROJECT_MEMBERS'], self::SOAP_BINDING_LIST_LABEL => util_translate_name_ugroup(ugroup_get_name_from_id($GLOBALS['UGROUP_PROJECT_MEMBERS']))); break; case 'group_admins': $ugroups[] = array(self::SOAP_BINDING_LIST_ID => $GLOBALS['UGROUP_PROJECT_ADMIN'], self::SOAP_BINDING_LIST_LABEL => util_translate_name_ugroup(ugroup_get_name_from_id($GLOBALS['UGROUP_PROJECT_ADMIN']))); break; case 'artifact_submitters': $ugroups[] = array(self::SOAP_BINDING_LIST_ID => 0, self::SOAP_BINDING_LIST_LABEL => $ugroup); break; default: if (preg_match('/ugroup_([0-9]+)/', $ugroup, $matches)) { $ugroup_data = db_fetch_array(ugroup_db_get_ugroup($matches[1])); $user_group = new ProjectUGroup($ugroup_data); $ugroups[] = array(self::SOAP_BINDING_LIST_ID => $matches[1], self::SOAP_BINDING_LIST_LABEL => $user_group->getNormalizedName()); } break; } } } return $ugroups; }
/** * Remove User from User Group * * * Error codes: * * 3000, Invalid project id * * 3201, Permission denied: need to be project admin * * 3203, Invalid user id * * 3301, User Group doesn't exist * * @param String $sessionKey The project admin session hash * @param Integer $groupId The Project id where the User Group is defined * @param Integer $ugroupId The User Group where the user should be removed * @param Integer $userId The user id to remove * * @return Boolean */ public function removeUserFromUGroup($sessionKey, $groupId, $ugroupId, $userId) { $this->getProjectIfUserIsAdmin($groupId, $sessionKey); if ($user = $this->userManager->getUserById($userId)) { try { $ugroup = new ProjectUGroup(array('ugroup_id' => $ugroupId, 'group_id' => $groupId)); $ugroup->removeUser($user); } catch (Exception $e) { throw new SoapFault((string) $e->getCode(), $e->getMessage()); } $this->feedbackToSoapFault(); return true; } else { throw new SoapFault('3203', "Invalid user id {$userId}"); } }
private function extractUGroupName(ProjectUGroup $ugroup) { return $ugroup->getName(); }
private function removeUserFromUserGroup(ProjectUGroup $user_group, PFUser $user) { if ($user_group->getId() == ProjectUGroup::PROJECT_MEMBERS) { return account_remove_user_from_group($user_group->getProjectId(), $user->getId()); } return $user_group->removeUser($user); }
public function itAddsMembersOfPreviousSourceAsHardCodedMembersOnRemove() { $user = aUser()->withLdapId('blabla')->build(); $gerrit_user = mock('Git_Driver_Gerrit_User'); stub($this->gerrit_user_manager)->getGerritUser($user)->returns($gerrit_user); $source_ugroup = mock('ProjectUGroup'); stub($source_ugroup)->getMembers()->returns(array($user)); $project = stub('Project')->getUnixName()->returns('mozilla'); $ugroup = new ProjectUGroup(array('ugroup_id' => 112, 'name' => 'developers')); $ugroup->setProject($project); $ugroup->setSourceGroup($source_ugroup); expect($this->driver)->addUserToGroup($this->remote_server, $gerrit_user, 'mozilla/developers')->once(); $this->membership_manager->removeUGroupBinding($ugroup); }
/** * Get title of the link to binding interface * * @param Integer $ugroupId Id of the user group * * @return String */ public function getLinkTitle($ugroupId) { $ugroup = new ProjectUGroup(array('ugroup_id' => $ugroupId)); if ($ugroup->isBound()) { $action = 'update_binding'; } else { $action = 'add_binding'; } return '- ' . $GLOBALS['Language']->getText('project_ugroup_binding', $action); }
/** * * @param ProjectUGroup $ugroup * @return bool */ private function ugroupCanBeMigrated(ProjectUGroup $ugroup) { return $ugroup->getId() > ProjectUGroup::NONE || $ugroup->getId() == ProjectUGroup::PROJECT_MEMBERS || $ugroup->getId() == ProjectUGroup::PROJECT_ADMIN; }