/** * @EXT\Route( * "/workspace/{workspace}/rights/form/role/{role}", * name="claro_workspace_resource_rights_creation_form" * ) * * @EXT\Template("ClarolineCoreBundle:Tool\workspace\resource_manager:resourceRightsCreation.html.twig") * * @param Workspace $workspace * @param Role $role * * @throws AccessDeniedException * * @return array */ public function workspaceResourceRightsCreationFormAction(Workspace $workspace, Role $role) { $token = $this->get('security.token_storage')->getToken(); if ($this->get('claroline.manager.rights_manager')->canEditPwsPerm($token)) { throw new AccessDeniedException(); } $em = $this->get('doctrine.orm.entity_manager'); if (!$this->get('security.authorization_checker')->isGranted('parameters', $workspace)) { throw new AccessDeniedException(); } $node = $em->getRepository('ClarolineCoreBundle:Resource\\ResourceNode')->findWorkspaceRoot($workspace); $config = $em->getRepository('ClarolineCoreBundle:Resource\\ResourceRights')->findOneBy(array('resourceNode' => $node, 'role' => $role)); $resourceTypes = $em->getRepository('ClarolineCoreBundle:Resource\\ResourceType')->findAll(); return array('workspace' => $workspace, 'configs' => array($config), 'resourceTypes' => $resourceTypes, 'nodeId' => $node->getId(), 'roleId' => $role->getId(), 'tool' => $this->getResourceManagerTool()); }
public function testRemoveUserRoleActionIsProtected() { $this->logIn($this->userOrga); $this->client->request('GET', "/api/users/{$this->userOrga->getId()}/roles/{$this->baseRole->getId()}/remove.json"); $this->assertEquals(403, $this->client->getResponse()->getStatusCode()); }
public function countUsersByRoleIncludingGroup(Role $role) { $dql = ' SELECT count(distinct u) FROM Claroline\\CoreBundle\\Entity\\User u JOIN u.roles r1 LEFT JOIN u.groups g LEFT JOIN g.roles r2 WHERE r1.id = :roleId OR r2.id = :roleId '; $query = $this->_em->createQuery($dql); $query->setParameter('roleId', $role->getId()); return $query->getSingleScalarResult(); }
public function countGroupsByRole(Role $role) { $qb = $this->createQueryBuilder('grp')->select('COUNT(DISTINCT grp.id)')->leftJoin('grp.roles', 'roles')->andWhere('roles.id = :roleId')->setParameter('roleId', $role->getId()); $query = $qb->getQuery(); return $query->getSingleScalarResult(); }