public function user($username) { $user = new User(); $user->setFirstName($username); $user->setLastName($username); $user->setUsername($username); $user->setPassword($username); $user->setMail($username . '@mail.com'); $user->setGuid($username); $this->om->persist($user); if (!$this->userRole) { $this->userRole = new Role(); $this->userRole->setName('ROLE_USER'); $this->userRole->setTranslationKey('user'); $this->om->persist($this->userRole); } $user->addRole($this->userRole); $workspace = new Workspace(); $workspace->setName($username); $workspace->setCreator($user); $workspace->setCode($username); $workspace->setGuid($username); $this->om->persist($workspace); $user->setPersonalWorkspace($workspace); $this->om->flush(); return $user; }
/** * @param string $name * * @return Role */ public function role($name) { $role = new Role(); $role->setName($name); $role->setTranslationKey($name); $this->om->persist($role); return $role; }
/** * @param string $name * @return Role */ public function role($name) { $role = $this->om->getRepository('ClarolineCoreBundle:Role')->findOneByName($name); if (!$role) { $role = new Role(); $role->setName($name); $role->setTranslationKey($name); $this->om->persist($role); } return $role; }
/** * @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()); }
/** * Constructor. */ public function __construct(Role $role, AbstractRoleSubject $subject) { $receiver = null; $receiverGroup = null; $details = array('role' => array('name' => $role->getTranslationKey())); if ($role->getWorkspace()) { $details['workspace'] = array('name' => $role->getWorkspace()->getName()); } if ($subject instanceof User) { $details['receiverUser'] = array('firstName' => $subject->getFirstName(), 'lastName' => $subject->getLastName()); $action = self::ACTION_USER; $receiver = $subject; } else { $details['receiverGroup'] = array('name' => $subject->getName()); $action = self::ACTION_GROUP; $receiverGroup = $subject; } parent::__construct($action, $details, $receiver, $receiverGroup, null, $role, $role->getWorkspace()); }
public function workspaceUser(Workspace $workspace, User $user) { $role = new Role(); $role->setName("ROLE_WS_{$workspace->getName()}_{$user->getUsername()}"); $role->setTranslationKey($role->getName()); $role->setWorkspace($workspace); $user->addRole($role); $workspace->addRole($role); $this->om->persist($role); $this->om->persist($user); return $user; }
/** * Constructor. */ public function __construct(Role $role, AbstractRoleSubject $subject) { $this->role = $role; $this->workspaceOwners = array(); $details = array('role' => array('name' => $role->getTranslationKey())); if ($role->getWorkspace()) { $details['workspace'] = array('name' => $role->getWorkspace()->getName(), 'id' => $role->getWorkspace()->getId()); $managerRole = $role->getWorkspace()->getManagerRole(); $this->workspaceOwners = $managerRole->getUsers(); } if ($subject instanceof User) { $details['receiverUser'] = array('firstName' => $subject->getFirstName(), 'lastName' => $subject->getLastName(), 'username' => $subject->getUsername()); $this->receiver = $subject; } else { $details['receiverGroup'] = array('name' => $subject->getName()); $this->receiverGroup = $subject; } $this->details = $details; parent::__construct($this->getActionKey(), $details, $this->receiver, $this->receiverGroup, null, $role, $role->getWorkspace()); }
public function invertWorkspaceCreation(Role $role) { $role->setPersonalWorkspaceCreationEnabled(!$role->isPersonalWorkspaceCreationEnabled()); $this->om->persist($role); $this->om->flush(); }
/** * Find ResourceRights for each descendant of a resource for a role. * * @param \Claroline\CoreBundle\Entity\Resource\ResourceNode $resource * @param \Claroline\CoreBundle\Entity\Role $role * * @return array */ public function findRecursiveByResourceAndRole(ResourceNode $resource, Role $role) { $dql = "\n SELECT rights, role, resource\n FROM Claroline\\CoreBundle\\Entity\\Resource\\ResourceRights rights\n JOIN rights.resourceNode resource\n JOIN rights.role role\n WHERE resource.path LIKE :path AND role.name = :roleName\n "; $query = $this->_em->createQuery($dql); $query->setParameter('path', $resource->getPath() . '%'); $query->setParameter('roleName', $role->getName()); return $query->getResult(); }
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()); }
protected static function createRole($name, Workspace $workspace = null) { $role = new Role(); $role->setName($name); $role->setTranslationKey($name); $role->setType(Role::PLATFORM_ROLE); if ($workspace) { $role->setType(Role::WS_ROLE); $role->setWorkspace($workspace); } self::create($name, $role); }
public function countUsersOfGroupByRole(Group $group, Role $role) { $dql = ' SELECT count(u) FROM Claroline\\CoreBundle\\Entity\\User u JOIN u.groups g WHERE g.name = :groupName AND u.id in ( SELECT u2.id FROM Claroline\\CoreBundle\\Entity\\User u2 LEFT JOIN u2.roles r1 LEFT JOIN u2.groups g2 LEFT JOIN g2.roles r2 WHERE r1.name = :roleName OR r2.name = :roleName ) '; $query = $this->_em->createQuery($dql); $query->setParameter('roleName', $role->getName()); $query->setParameter('groupName', $group->getName()); return $query->getSingleScalarResult(); }
/** * @EXT\Route( * "role/{role}/edit/name/{name}", * name="platform_role_name_edit", * options={"expose"=true} * ) * @EXT\Method("POST") * * @param Role $role * @return JsonResponse */ public function editRoleNameAction(Role $role, $name) { if (ctype_space($name)) { return new JsonResponse(array('name' => $role->getName(), 'limit' => $role->getMaxUsers(), 'translationKey' => $role->getTranslationKey()), 500); } $role->setTranslationKey($name); $this->roleManager->edit($role); return new JsonResponse(array('name' => $role->getName(), 'limit' => $role->getMaxUsers(), 'translationKey' => $role->getTranslationKey())); }
public function emptyRole(Role $role, $mode) { if ($mode === self::EMPTY_USERS) { $users = $role->getUsers(); foreach ($users as $user) { $user->removeRole($role); $this->om->persist($user); } } if ($mode === self::EMPTY_GROUPS) { $groups = $role->getGroups(); foreach ($groups as $group) { $group->removeRole($role); $this->om->persist($group); } } $this->om->persist($role); $this->om->flush(); }
private function createTeamDirectory(Team $team, Workspace $workspace, User $user, Role $teamRole, Role $teamManagerRole, ResourceNode $resource = null, array $creatableResources = array()) { $rootDirectory = $this->resourceManager->getWorkspaceRoot($workspace); $directoryType = $this->resourceManager->getResourceTypeByName('directory'); $resourceTypes = $this->resourceManager->getAllResourceTypes(); $directory = $this->resourceManager->createResource('Claroline\\CoreBundle\\Entity\\Resource\\Directory', $team->getName()); $teamRoleName = $teamRole->getName(); $teamManagerRoleName = $teamManagerRole->getName(); $rights = array(); $rights[$teamRoleName] = array(); $rights[$teamRoleName]['role'] = $teamRole; $rights[$teamRoleName]['create'] = array(); $rights[$teamManagerRoleName] = array(); $rights[$teamManagerRoleName]['role'] = $teamManagerRole; $rights[$teamManagerRoleName]['create'] = array(); foreach ($resourceTypes as $resourceType) { $rights[$teamManagerRoleName]['create'][] = array('name' => $resourceType->getName()); } foreach ($creatableResources as $creatableResource) { $rights[$teamRoleName]['create'][] = array('name' => $creatableResource->getName()); } $decoders = $directoryType->getMaskDecoders(); foreach ($decoders as $decoder) { $decoderName = $decoder->getName(); $rights[$teamManagerRoleName][$decoderName] = true; if ($decoderName !== 'administrate' && $decoderName !== 'delete') { $rights[$teamRoleName][$decoderName] = true; } } $teamDirectory = $this->resourceManager->create($directory, $directoryType, $user, $workspace, $rootDirectory, null, $rights); if (!is_null($resource)) { $this->resourceManager->copy($resource, $teamDirectory->getResourceNode(), $user, true, true, $rights); } return $teamDirectory; }
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(); }