/**
  * Run the database seeds.
  */
 public function run()
 {
     $rolesRepository = new RoleRepository();
     $userRepository = new UserRepository();
     $role = $rolesRepository->findByName('administrator');
     $user = User::fromNameAndEmailAndPassword('Administrator', '*****@*****.**', '123456');
     $user->confirm();
     $user->role()->associate($role);
     $userRepository->save($user);
 }
 public function testCanSaveUser()
 {
     $this->dontSeeInDatabase('users', ['name' => 'Francesco', 'email' => '*****@*****.**']);
     $this->userRepository->save($this->prepareTestUser());
     $this->seeInDatabase('users', ['name' => 'Francesco', 'email' => '*****@*****.**']);
 }
 /**
  * Invita un nuovo editor creandone l'utente come editor.
  *
  * @param UserInviteRequest $request
  * @param UserRepository $userRepository
  * @param RoleRepository $roleRepository
  * @return \Illuminate\Http\RedirectResponse
  */
 public function postInvite(UserInviteRequest $request, UserRepository $userRepository, RoleRepository $roleRepository)
 {
     $user = User::fromNameAndEmailAndPassword($request->get('name'), $request->get('email'), '');
     try {
         $userRepository->save($user);
     } catch (NotSavedException $e) {
         return redirect('admin/users')->with('error_message', 'Problemi durante la creazione dell\'utente. Riprovare.');
     }
     try {
         $role = $roleRepository->findByName('editor');
         $this->dispatch(new AssignRoleToUserCommand($role, $user));
     } catch (NotSavedException $e) {
         return redirect('admin/users')->with('error_message', 'Problemi in fase di assegnazione del ruolo. Riprovare.');
     }
     return redirect('admin/users')->with('success_message', 'Editor invitato correttamente.');
 }
 /**
  * @param Request $request
  * @param UserRepository $userRepository
  * @param $confirmationCode
  * @return \Illuminate\Http\RedirectResponse
  * @throws \Exception
  */
 public function postInvitation(Request $request, UserRepository $userRepository, $confirmationCode)
 {
     /* @var User $user */
     $user = $userRepository->findByConfirmationCode($confirmationCode);
     if (!$user) {
         return redirect('admin/login')->with('errors', Collection::make(['Codice di conferma non riconosciuto. Riprovare.']));
     }
     if ($user->email !== $request->get('email')) {
         return redirect('admin/invitation/' . $confirmationCode)->with('errors', Collection::make(['L\'indirizzo email inserito non corrisponde a quello del codice.']));
     }
     $user->setNewPassword($request->get('password'));
     $user->confirm();
     try {
         $userRepository->save($user);
     } catch (NotSavedException $e) {
         return redirect('admin/invitation/' . $confirmationCode)->with('errors', Collection::make(['Problemi in fase di salvataggio della password. Riprovare.']));
     }
     return redirect('admin/login')->with('message', 'Editor registrato! Effettua l\'accesso inserendo le credenziali scelte.');
 }