Example #1
0
 public function setUp()
 {
     $this->manager = $this->getManager();
     parent::setUp();
     $this->user = $this->userRepository->create(new \App\User(['username' => $this->faker->userName, 'email' => $this->faker->safeEmail, 'password' => $this->faker->password()]));
     $this->group = $this->groupRepository->create(new \App\Group(['name' => uniqid()]));
     $this->role = $this->roleRepository->create(new \App\Role(['name' => uniqid(), 'filter' => 'A']));
     $this->roleRevoke = $this->roleRepository->create(new \App\Role(['name' => uniqid(), 'filter' => 'R']));
     $this->permissionFirst = $this->permissionRepository->create(new \App\Permission(['area' => uniqid(), 'permission' => uniqid(), 'description' => 'test']));
     $this->permissionSecond = $this->permissionRepository->create(new \App\Permission(['area' => uniqid(), 'permission' => uniqid(), 'description' => 'test']));
     $this->initiate();
 }
Example #2
0
 public function register(Request $request)
 {
     $rules = $this->userRepository->getModel()->getRules();
     $rules['password'] .= '|confirmed';
     $validator = Validator::make($request->all(), $rules);
     if ($validator->fails()) {
         return redirect(route('auth.registerForm'))->withErrors($validator)->withInput();
     }
     $inputs = $request->all();
     $user = new \App\User();
     $user->username = $inputs['username'];
     $user->password = \Hash::make($inputs['password']);
     $user->email = $inputs['email'];
     $user = $this->userRepository->create($user, false);
     $this->dispatch(new AccountCreated($user));
     $request->session()->flash('success', 'auth.account_created');
     return redirect(route('auth.login', ['username' => $user->username]));
 }
Example #3
0
 /**
  * @param $firstName
  * @param $lastName
  * @param $email
  * @return \Illuminate\Database\Eloquent\Model
  */
 protected function createUser($firstName, $lastName, $email)
 {
     $user = new User();
     // generate an ldap like name
     $initialUsername = $username = strtolower(substr($firstName, 0, 1) . str_replace([' ', '-', ''], '', $lastName));
     // handle name conflicts
     $i = 1;
     while ($this->repository->exists(['username' => $username])) {
         $username = $initialUsername . $i;
         $i++;
     }
     $user->username = $username;
     $user->email = $email;
     // fake random password
     $user->password = Hash::make(str_random(30));
     return $this->repository->create($user);
 }
Example #4
0
 /**
  * @param Request $request
  *
  * @return $this|\Illuminate\Http\RedirectResponse|\Laravel\Lumen\Http\Redirector
  */
 public function changeLostPassword(Request $request)
 {
     $validator = Validator::make($request->all(), ['user_id' => 'required', 'token' => 'required', 'password' => $this->userRepository->getModel()->getRules()['password'] . '|confirmed']);
     if ($validator->fails()) {
         return redirect(route('auth.lostPasswordForm'))->withErrors($validator)->withInput();
     }
     $token = Input::get('token', false);
     try {
         $decryptToken = Crypt::decrypt($token);
         // try to find the user with the user id and the decrypt token, this will check the token existence
         $users = $this->userRepository->where(['id' => Input::get('user_id', false), 'lost_password_token' => $decryptToken]);
         if ($users->count() !== 1) {
             $request->session()->flash('error', 'auth.user_not_found');
             return redirect(route('auth.lostPasswordForm', ['error' => true]));
         }
         $user = $users->first();
         // use a constant for the time validity of the token
         if (Carbon::now()->diffInHours($user->lost_password_token_created_at) > 2) {
             $request->session()->flash('error', 'auth.token_expired');
             return redirect(route('auth.lostPasswordForm'));
         }
         // remove token
         $user->lost_password_token = null;
         $user->lost_password_token_created_at = null;
         // hash new password
         $user->password = \Hash::make(Input::get('password'));
         $this->userRepository->update($user);
     } catch (ValidationException $e) {
         $request->session()->flash('error', 'auth.user_error_update');
         return redirect(route('auth.changeLostPasswordForm'));
     } catch (DecryptException $e) {
         $request->session()->flash('error', 'auth.token_not_valid');
         return redirect(route('auth.lostPasswordForm'));
     }
     $request->session()->flash('success', 'auth.password_changed');
     return redirect(route('auth.login'));
 }