コード例 #1
0
ファイル: UserProvider.php プロジェクト: Raphy/AfterEpi
 /**
  * Loads the user for the given username.
  *
  * This method must throw UsernameNotFoundException if the user is not
  * found.
  *
  * @param string $username The username
  *
  * @return UserInterface
  *
  * @see UsernameNotFoundException
  *
  * @throws UsernameNotFoundException if the user is not found
  *
  */
 public function loadUserByUsername($username)
 {
     if (empty($username)) {
         throw new UsernameNotFoundException();
     }
     if ($user = $this->findUserBy(array('login' => $username))) {
         return $user;
     }
     $user = new User();
     $user->setLogin($username);
     /*$this->em->persist($user);
       $this->em->flush();*/
     return $user;
     //throw new UsernameNotFoundException();
 }
コード例 #2
0
ファイル: LoadUser.php プロジェクト: Raphy/AfterEpi
 /**
  * {@inheritDoc}
  */
 public function load(ObjectManager $manager)
 {
     $records = array(array('defrei_r', 'Raphael', 'Defreitas', array('ROLE_SUPER_ADMIN')));
     foreach ($records as $record) {
         $user = new User();
         $user->setLogin($record[0]);
         $user->setFirstname($record[1]);
         $user->setLastname($record[2]);
         $user->setRoles($record[3]);
         $manager->persist($user);
     }
     $manager->flush();
 }
コード例 #3
0
ファイル: AdminController.php プロジェクト: Raphy/AfterEpi
 /**
  * @Security("has_role('ROLE_SUPER_ADMIN')")
  * @Template()
  */
 public function editAction(Request $request)
 {
     // Shortcuts
     $em = $this->getDoctrine()->getManager();
     $csrf = $this->get('form.csrf_provider');
     $post = $request->request->all();
     $admin_logger = $this->get('after_epi.admin.logger');
     if ($request->isMethod('POST')) {
         $errors = array();
         if (!array_key_exists('csrf_token', $post) || !$csrf->isCsrfTokenValid('user_edit', $post['csrf_token'])) {
             $errors[0][] = 'La vérification du jeton de sécurité a échoué.';
         }
         if ($request->query->has('id')) {
             if (($user = $em->getRepository('AfterEpiUserBundle:User')->find($request->query->get('id'))) == null) {
                 throw $this->createNotFoundException('User not found');
             }
             if (!array_key_exists('roles', $post) || !is_array($post['roles']) || count($post['roles']) == 0) {
                 $errors[0][] = 'Vous devez mettre au moins 1 droit.';
             }
             if (count($errors) > 0) {
                 return array('user' => $user, 'errors' => $errors, 'post' => $post);
             }
             $user->setRoles($post['roles']);
             $em->persist($user);
             $em->flush();
             $admin_logger->log("Edition de l'utlisateur [" . $user->getId() . "] [" . $user->getLogin() . "]");
             $this->get('session')->getFlashBag()->add('success', "L'utilisateur [" . $user->getLogin() . "] a été modifié.");
             return $this->redirect($this->generateUrl($request->get('_route'), $request->query->all()));
         }
         if (!array_key_exists('login', $post) || empty($post['login'])) {
             $errors['login'] = '******';
         }
         if (!array_key_exists('password', $post) || empty($post['password'])) {
             $errors['password'] = '******';
         }
         if (count($errors) > 0) {
             return array('errors' => $errors, 'post' => $post);
         }
         if (($user = $em->getRepository('AfterEpiUserBundle:User')->findOneBy(array('login' => $post['login']))) != null) {
             $this->get('session')->getFlashBag()->add('info', "Utilisateur [" . $user->getLogin() . "] existe déjà.");
             return $this->redirect($this->generateUrl('afterepi_user_admin_view', array('id' => $user->getId())));
         }
         $connector = new Connector($this->getUser()->getLogin(), $post['password']);
         if (!$connector->isSignedIn()) {
             $this->get('session')->getFlashBag()->add('alert', "Connexion impossible à l'intranet.");
             return $this->redirect($this->generateUrl($request->get('_route')));
         }
         $student = new Student($connector, $request->get('login', null));
         if ($student->getLogin() == null || $student->getFirstName() == null || $student->getLastName() == null) {
             $this->get('session')->getFlashBag()->add('alert', "L'utilisateur [" . $request->get('login', null) . "] est invalide.");
             return $this->redirect($this->generateUrl($request->get('_route')));
         }
         $user = new User();
         $user->fromStudent($student);
         $user->setAccount(new Account());
         $em->persist($user);
         $em->flush();
         $admin_logger->log("Edition de l'utlisateur [" . $user->getId() . "] [" . $user->getLogin() . "]");
         $this->get('session')->getFlashBag()->add('success', "L'utilisateur [" . $user->getLogin() . "] a été ajouté.");
         return $this->redirect($this->generateUrl('afterepi_user_admin_view', array('id' => $user->getId())));
     } else {
         if ($request->query->has('id')) {
             if (($user = $em->getRepository('AfterEpiUserBundle:User')->find($request->query->get('id'))) == null) {
                 throw $this->createNotFoundException('User not found');
             }
             return array('user' => $user);
         }
     }
     return array();
 }