/** * @EXT\Route( * "/team/{team}/unregister/manager", * name="claro_team_manager_unregister_manager", * options={"expose"=true} * ) * @EXT\ParamConverter("manager", options={"authenticatedUser" = true}) * * @return \Symfony\Component\HttpFoundation\Response */ public function managerUnregisterManagerFromTeamAction(Team $team, User $manager) { $this->checkWorkspaceManager($team->getWorkspace(), $manager); $this->teamManager->unregisterManagerFromTeam($team); return new Response('success', 200); }
public function initializeTeamDirectoryPerms(Team $team) { $directory = $team->getDirectory(); if (!is_null($directory)) { $this->om->startFlushSuite(); $workspace = $team->getWorkspace(); $teamRole = $team->getRole(); $teamManagerRole = $team->getTeamManagerRole(); $isPublic = $team->getIsPublic(); $node = $directory->getResourceNode(); $workspaceRoles = $this->roleManager->getRolesByWorkspace($workspace); foreach ($workspaceRoles as $role) { if ($role->getId() !== $teamRole->getId() && $role->getId() !== $teamManagerRole->getId()) { $rights = array(); if ($isPublic) { $rights['open'] = true; } $this->rightsManager->editPerms($rights, $role, $node, true); } } $this->om->endFlushSuite(); } }
public function findSearchedUnregisteredUsersByTeam(Team $team, $search = '', $orderedBy = 'firstName', $order = 'ASC', $executeQuery = true) { $dql = "\n SELECT DISTINCT u\n FROM Claroline\\CoreBundle\\Entity\\User u\n WHERE u.isRemoved = false\n AND (\n u IN (\n SELECT DISTINCT u1\n FROM Claroline\\CoreBundle\\Entity\\User u1\n JOIN u1.roles r1 WITH r1 IN (\n SELECT r12\n FROM Claroline\\CoreBundle\\Entity\\Role r12\n WHERE r12.workspace = :workspace\n )\n WHERE u1.isRemoved = false\n )\n OR u IN (\n SELECT DISTINCT u2\n FROM Claroline\\CoreBundle\\Entity\\User u2\n JOIN u2.groups g\n JOIN g.roles r2 WITH r2 IN (\n SELECT r22\n FROM Claroline\\CoreBundle\\Entity\\Role r22\n WHERE r22.workspace = :workspace\n )\n WHERE u2.isRemoved = false\n )\n )\n AND u NOT IN (\n SELECT DISTINCT u3\n FROM Claroline\\CoreBundle\\Entity\\User u3\n WHERE EXISTS (\n SELECT t\n FROM Claroline\\TeamBundle\\Entity\\Team t\n JOIN t.users u4\n WHERE t = :team\n AND u4 = u3\n )\n )\n AND u NOT IN (\n SELECT DISTINCT u5\n FROM Claroline\\CoreBundle\\Entity\\User u5\n JOIN u5.roles r5 WITH r5 IN (\n SELECT r52\n FROM Claroline\\CoreBundle\\Entity\\Role r52\n WHERE r52.workspace = :workspace\n AND r52.name = :workspaceManagerName\n )\n WHERE u5.isRemoved = false\n )\n AND u NOT IN (\n SELECT DISTINCT u6\n FROM Claroline\\CoreBundle\\Entity\\User u6\n JOIN u6.groups g2\n JOIN g2.roles r6 WITH r6 IN (\n SELECT r62\n FROM Claroline\\CoreBundle\\Entity\\Role r62\n WHERE r62.workspace = :workspace\n AND r62.name = :workspaceManagerName\n )\n WHERE u6.isRemoved = false\n )\n AND\n (\n UPPER(u.firstName) LIKE :search\n OR UPPER(u.lastName) LIKE :search\n OR UPPER(u.username) LIKE :search\n )\n ORDER BY u.{$orderedBy} {$order}\n "; $query = $this->_em->createQuery($dql); $workspace = $team->getWorkspace(); $query->setParameter('workspace', $workspace); $query->setParameter('team', $team); $query->setParameter('workspaceManagerName', 'ROLE_WS_MANAGER_' . $workspace->getGuid()); $upperSearch = strtoupper($search); $query->setParameter('search', "%{$upperSearch}%"); return $executeQuery ? $query->getResult() : $query; }