protected function onSuccess(UserInterface $user, $confirmation)
 {
     $group = $this->groupManager->findGroupBy(array('id' => 2));
     if (!empty($group)) {
         $role = new UserRole();
         $role->setGroupe($group);
         $role->setUser($user);
         $role->setRole("usr");
         $this->em->persist($role);
         $this->em->flush();
         $user->addGroup($group);
         $user->setChosenGroup($group);
     }
     parent::onSuccess($user, $confirmation);
     $mainBotAccount = $this->userManager->findUserBy(array('id' => 20));
     if ($this->registrationMessage->hasMessage()) {
         $content = $this->registrationMessage->getMessage();
     } else {
         $content = '';
     }
     if (!empty($mainBotAccount) && !empty($content)) {
         $salon = new Salon();
         $salon->setName('Discussion privée');
         $salon = $this->salonManager->createSalon($salon, array($user, $mainBotAccount), array($user), true);
         $message = $this->persistManager->buildMessage($mainBotAccount, $salon, $content, new \DateTime());
         $this->persistManager->persistMessage($message);
     }
 }
Exemple #2
0
 public function addUserAction($id)
 {
     /* Récupération du groupe */
     $em = $this->getDoctrine()->getManager();
     $groupsRepository = $em->getRepository('TerAelisUserBundle:Group');
     $group = $groupsRepository->findOneBy(array('id' => $id));
     if ($group == null) {
         throw $this->createNotFoundException('Groupe inexistant (id = ' . $id . ')');
     }
     /* Vérification de la permission */
     /* Modérateurs */
     $usersRepository = $em->getRepository('TerAelisUserBundle:User');
     $mods = $usersRepository->findModsByGroup($id);
     $user = $this->getUser();
     if (empty($user)) {
         throw new AccessDeniedException("Vous n'avez pas le droit de gérer les utilisateurs de ce groupe.");
     }
     if (!$user->hasRole('ROLE_ADMIN')) {
         $userId = $user->getId();
         $allow = false;
         foreach ($mods as $m) {
             if ($m->getId() == $userId) {
                 $allow = true;
                 break;
             }
         }
     } else {
         $allow = true;
     }
     if (!$allow) {
         throw new AccessDeniedException("Vous n'avez pas le droit de gérer les utilisateurs de ce groupe.");
     }
     /* Ajout du groupe au rôle */
     $role = new UserRole();
     $role->setGroupe($group);
     $form = $this->createFormBuilder($role)->add('user', 'text')->getForm();
     // Le formulaire est déjà envoyé
     $request = $this->getRequest();
     if ($request->getMethod() == 'POST') {
         // On récupère les informations
         $form->bind($request);
         // On l'ajoute dans la BDD
         $em = $this->getDoctrine()->getManager();
         $repositoryUser = $em->getRepository("TerAelisUserBundle:User");
         $user = $repositoryUser->findOneByName($form["user"]->getData());
         if (empty($user)) {
             $form->addError(new FormError('Cet utilisateur n\'existe pas.'));
         }
         // Gestion de la validation du formulaire
         if ($form->isValid()) {
             $role->setUser($user);
             $role->setRole("usr");
             $em->persist($role);
             $em->flush();
             $user->addGroup($group);
             $em->persist($user);
             $em->flush();
             // On informe le user que c'est bon
             $this->get('session')->getFlashBag()->add('info', "L'utilisateur a été ajouté avec succes.");
             // Puis on redirige vers la page de visualisation de cet article
             return $this->redirect($this->generateUrl('group_view', array('id' => $id)));
         }
     }
     return $this->render('TerAelisUserBundle:Group:add.html.twig', array('group' => $group, 'form' => $form->createView(), 'submit' => 'Ajouter'));
 }