Exemplo n.º 1
0
 /**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request $request
  *
  * @return \Illuminate\Http\Response
  */
 public function postStore()
 {
     if (!empty($request['email'] = Input::get('email')) && !empty($request['password'] = Input::get('password'))) {
         if (!Sentinel::findByCredentials($request)) {
             if (mb_strlen(Input::get('password')) < 8) {
                 $response['status'] = 'warning';
                 $response['message'] = trans('user_notifications.password_length');
             } else {
                 if (Sentinel::registerAndActivate($request)) {
                     $response['status'] = 'success';
                     $response['message'] = trans('user_notifications.user_created');
                 } else {
                     $response['status'] = 'error';
                     $response['message'] = trans('user_notifications.user_not_created');
                 }
             }
         } else {
             $response['status'] = 'error';
             $response['message'] = trans('user_notifications.user_exists');
         }
     } else {
         $response['status'] = 'warning';
         $response['message'] = trans('global.all_fields_required');
     }
     return response()->json($response);
 }
 /**
  * 获取用户统计信息
  *
  * @param int $flage 默认0,获取所有用户;1,获取已激活用户;2,获取未激活用户;
  *
  * @return mixed
  */
 public function num_active_unactive($flage = 0)
 {
     $users = User::get();
     //已激活用户
     $active_user = array();
     //未激活用户
     $unactive_user = array();
     //计数
     $active_num = 0;
     $unactive_num = 0;
     foreach ($users as $k => $kValue) {
         //dump($kValue);
         $email = $kValue->email;
         $credentials0 = ["email" => $email];
         $temp_user_info = Sentinel::findByCredentials($credentials0);
         if (Activation::completed($temp_user_info)) {
             $users[$k]['active'] = 1;
             $active_user[] = $users[$k];
             ++$active_num;
         } else {
             $users[$k]['active'] = 0;
             $unactive_user[] = $users[$k];
             ++$unactive_num;
         }
     }
     if ($flage == 1) {
         $users = $active_user;
     }
     if ($flage == 2) {
         $users = $unactive_user;
     }
     $data['active_num'] = number_format($active_num * 100 / ($active_num + $unactive_num), 2, '.', '');
     $data['unactive_num'] = number_format($unactive_num * 100 / ($active_num + $unactive_num), 2, '.', '');
     return $data;
 }
Exemplo n.º 3
0
 /**
  * Проверка Email на использование
  */
 public function getCheckEmail(Request $request)
 {
     $user = Sentinel::findByCredentials(array('email' => $request->input('email')));
     if (!$user) {
         return response()->json('true', 200);
     } else {
         return response()->json('Данный адрес уже зарегистрирован', 200);
     }
 }
Exemplo n.º 4
0
 /**
  * Reset the given user's password.
  *
  * @param \Illuminate\Http\Request $request
  *
  * @return \Illuminate\Http\Response
  */
 public function postReset(Request $request)
 {
     $this->validate($request, ['token' => 'required', 'email' => 'required|email', 'password' => 'required_without:id|min:8|confirmed', 'password_confirmation' => 'required_with:password|min:8']);
     $user = Sentinel::findByCredentials($request->only('email', 'id'));
     if (!empty($user) || $user != null) {
         if (Reminder::exists($user) != false) {
             Reminder::complete($user, $request->token, $request->password);
             list($type, $msg, $redirect) = ['mensaje', 'auth.reminder_success', 'login'];
         } else {
             list($type, $msg, $redirect) = ['error', 'auth.remindernotfound', 'back'];
         }
     } else {
         list($type, $msg, $redirect) = ['error', 'auth.usernotfound', 'back'];
     }
     return $redirect == 'login' ? $this->sendResetResponse($type, $msg) : $this->sendResetFailedResponse($request, $type, $msg);
 }
Exemplo n.º 5
0
 public function postEmail(Request $request)
 {
     $this->validate($request, ['email' => 'required|email']);
     $user = Sentinel::findByCredentials(['email' => $request->only('email')]);
     if ($user && !Activation::completed($user)) {
         return redirect()->back()->withErrors(['email' => '该邮箱注册的账号并没有激活,请重新注册']);
     }
     $response = Password::sendResetLink($request->only('email'), function (Message $message) {
         $message->subject($this->getEmailSubject());
     });
     switch ($response) {
         case Password::RESET_LINK_SENT:
             return redirect()->back()->with('status', trans($response));
         case Password::INVALID_USER:
             return redirect()->back()->withErrors(['email' => trans($response)]);
     }
 }
Exemplo n.º 6
0
 /**
  * Find a user by its credentials
  * @param  array $credentials
  * @return mixed
  */
 public function findByCredentials(array $credentials)
 {
     return Sentinel::findByCredentials($credentials);
 }
Exemplo n.º 7
0
 /**
  * {@inheritDoc}
  */
 public function findByCredentials(array $data)
 {
     return Sentinel::findByCredentials($data);
 }
Exemplo n.º 8
0
 public function doRegister()
 {
     if (!empty($request['email'] = Input::get('email')) && !empty($request['password'] = Input::get('password'))) {
         if (!Sentinel::findByCredentials($request)) {
             if (!filter_var($request['email'], FILTER_VALIDATE_EMAIL)) {
                 $response['status'] = 'warning';
                 $response['message'] = trans('user_notifications.invalid_email');
             } else {
                 if (mb_strlen(Input::get('password')) < 8) {
                     $response['status'] = 'warning';
                     $response['message'] = trans('user_notifications.password_length');
                 } else {
                     if (Sentinel::registerAndActivate($request)) {
                         $user = Sentinel::authenticate($request);
                         //If Authentication was successful
                         if (!empty($user)) {
                             Sentinel::loginAndRemember($user);
                         }
                         $data = ['sys_title' => $this->system['title'], 'sys_email' => $this->system['email'], 'user' => $user];
                         Mail::send('dressplace::emails.register', $data, function ($m) use($data) {
                             $m->from($data['sys_email'], $data['sys_title']);
                             $m->replyTo($data['sys_email'], $data['sys_title']);
                             $m->to($data['user']['email'], $data['user']['email'])->subject(trans('client.register_mail'));
                         });
                         $response['status'] = 'success';
                         $response['message'] = trans('user_notifications.user_created');
                     } else {
                         $response['status'] = 'error';
                         $response['message'] = trans('user_notifications.user_not_created');
                     }
                 }
             }
         } else {
             $response['status'] = 'error';
             $response['message'] = trans('user_notifications.user_exists');
         }
     } else {
         $response['status'] = 'warning';
         $response['message'] = trans('global.all_fields_required');
     }
     echo json_encode($response);
 }
Exemplo n.º 9
0
 public function postReset(Request $request)
 {
     $this->validate($request, ['email' => 'required|email|max:255|exists:users', 'password' => 'required|min:6']);
     $user = Sentinel::findByCredentials(['email' => $request->input('email')]);
     $reminder = Reminder::complete($user, $request->input('token'), $request->input('password'));
     if ($reminder) {
         return redirect()->route('auth.login');
     } else {
         return redirect()->route('auth.password.reset', [$request->input('email'), $request->input('token')])->withInput()->withErrors(['token' => 'Token was incorrect']);
     }
 }
 public function project_auto_default()
 {
     /**
      * 生成默认管理员账户
      */
     //默认管理员信息
     $email = '*****@*****.**';
     $credentials = ['email' => $email, 'password' => $email, 'first_name' => 'Zicnh', 'last_name' => 'Chegg'];
     //TODO::根据邮箱,查找用户信息
     $credentials0 = ["email" => $email];
     //判断默认管理员是否存在
     $is_exist = Sentinel::findByCredentials($credentials0);
     if ($is_exist) {
         return;
     }
     //注册并激活默认管理员账户
     $user = Sentinel::register($credentials, true);
     /**
      * 生成默认角色
      */
     //默认角色信息
     $role = Sentinel::getRoleRepository()->createModel()->create(['name' => '全权管理员', 'slug' => 'zinch']);
     //当前项目所有权限
     $permissions = $this->get_permission();
     foreach ($permissions as $permission) {
         $permissions_array[$permission['name']] = true;
     }
     $role->permissions = $permissions_array;
     //$user->permissions属性值,需一次性赋值;否则会报错。
     $role->save();
     //给默认账户分配默认角色
     $role->users()->attach($user);
 }
Exemplo n.º 11
0
 public function postActivation(RegisterRequest $request)
 {
     $email = $request->input('email');
     $user = Sentinel::findByCredentials(['email' => $email]);
     // 设置用户名和密码
     Sentinel::update($user, array('first_name' => $request->input('username'), 'password' => $request->input('password')));
     // 激活用户账号
     $status = Activation::complete($user, $request->input('code'));
     if (!$status) {
         return redirect('auth/register')->withErrors(array('邮件链接过期,请重新注册'));
     }
     if (Session::has(self::OAUTH_USER)) {
         $oauthInfo = Session::get(self::OAUTH_USER);
         $provider = $oauthInfo['provider'];
         $oauthUser = $oauthInfo['user'];
         $uid = OAuthAccount::where('oauth_id', $oauthUser->getId())->where('oauth_type', $provider)->pluck('uid');
         if (!$uid) {
             // 绑定账号
             $oAuthAccount = new OAuthAccount();
             $oAuthAccount->uid = $user->id;
             $oAuthAccount->oauth_id = $oauthUser->getId();
             $oAuthAccount->oauth_type = $provider;
             $oAuthAccount->created_at = time();
             $oAuthAccount->save();
         }
     }
     // 登录
     Sentinel::login($user);
     return redirect($this->redirectPath());
 }