/**
  * @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());
 }
Example #2
0
 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();
 }