Exemple #1
0
 /**
  * @param AbstractRoleSubject[] $subjects
  * @param \Claroline\CoreBundle\Entity\Workspace\Workspace $workspace
  * @param \Claroline\CoreBundle\Entity\Role[] $roles
  *
  * @throws Exception\LastManagerDeleteException
  */
 public function checkWorkspaceRoleEditionIsValid(array $subjects, Workspace $workspace, array $roles)
 {
     $managerRole = $this->getManagerRole($workspace);
     $groupsManagers = $this->groupRepo->findByRoles(array($managerRole));
     $usersManagers = $this->userRepo->findByRoles(array($managerRole));
     $removedGroupsManager = 0;
     $removedUsersManager = 0;
     foreach ($subjects as $subject) {
         if ($subject->hasRole($managerRole->getName()) && in_array($managerRole, $roles)) {
             $subject instanceof \Claroline\CoreBundle\Entity\Group ? $removedGroupsManager++ : $removedUsersManager++;
         }
     }
     if ($removedGroupsManager >= count($groupsManagers) && $removedUsersManager >= count($usersManagers)) {
         throw new LastManagerDeleteException("You can't remove every managers");
     }
 }
 public function getAllGroupsWithoutPager($orderedBy = 'id', $order = 'ASC', $executeQuery = true)
 {
     return $this->groupRepo->findAllGroups($orderedBy, $order, $executeQuery);
 }