public function validateAddUsersToGroup(array $users, Group $group) { return true; $countToRegister = count($users); $roles = $group->getPlatformRoles(); foreach ($roles as $role) { $max = $role->getMaxUsers(); $countRegistered = $this->om->getRepository('ClarolineCoreBundle:User')->countUsersByRoleIncludingGroup($role); if ($max < $countRegistered + $countToRegister) { return false; } } return true; }
/** * @EXT\Route("/{groupId}/update", name="claro_admin_update_group_settings") * @EXT\ParamConverter( * "group", * class="ClarolineCoreBundle:Group", * options={"id" = "groupId", "strictId" = true} * ) * @EXT\Template("ClarolineCoreBundle:Administration/Groups:settingsForm.html.twig") * * Updates the settings of a group and redirects to the group list. * * @param Group $group * * @return \Symfony\Component\HttpFoundation\RedirectResponse */ public function updateSettingsAction(Group $group) { $oldRoles = $group->getPlatformRoles(); $form = $this->formFactory->create(FormFactory::TYPE_GROUP_SETTINGS, array('isAdmin' => true, 'roles' => $oldRoles), $group); $form->handleRequest($this->request); $unavailableRoles = []; $roles = $form['platformRoles']->getData(); foreach ($roles as $role) { $isAvailable = $this->roleManager->validateRoleInsert($group, $role); if (!$isAvailable) { $unavailableRoles[] = $role; } } if ($form->isValid() && count($unavailableRoles) === 0) { $group = $form->getData(); $newRoles = $form['platformRoles']->getData(); $this->groupManager->setPlatformRoles($group, $newRoles); $this->groupManager->updateGroup($group, $oldRoles); return $this->redirect($this->generateUrl('claro_admin_group_list')); } return array('group' => $group, 'form_settings' => $form->createView(), 'unavailableRoles' => $unavailableRoles); }