コード例 #1
0
ファイル: LoginForm.php プロジェクト: lowbase/yii2-user
 /**
  * Получение модели пользователя
  * @return bool|null|static
  */
 public function getUser()
 {
     if ($this->_user === false) {
         $this->_user = User::findOne(['email' => $this->email]);
     }
     return $this->_user;
 }
コード例 #2
0
ファイル: UserController.php プロジェクト: lowbase/yii2-user
 /**
  * Поиск пользователя по ID
  * @param $id - ID пользователя
  * @return null|static
  * @throws NotFoundHttpException
  */
 protected function findModel($id)
 {
     if (($model = User::findOne($id)) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException(Yii::t('user', 'Пользователь не найден.'));
     }
 }
コード例 #3
0
ファイル: AuthController.php プロジェクト: lowbase/yii2-user
 /**
  * Удлаение ключа авторизации соц. сети (отвзяывание)
  * @param $id - ID ключа авторизации
  * @return \yii\web\Response
  */
 public function actionUnbind($id)
 {
     /** @var \lowbase\user\models\UserOauthKey $key */
     $key = UserOauthKey::findOne(['user_id' => Yii::$app->user->id, 'provider_id' => UserOauthKey::getAvailableClients()[$id]]);
     if (!$key) {
         Yii::$app->session->setFlash('error', Yii::t('user', 'Ключ не найден'));
     } else {
         /** @var \lowbase\user\models\User $user */
         $user = User::findOne($key->user_id);
         if ($user) {
             if (UserOauthKey::isOAuth($user->id) <= 1 && $user->email === null) {
                 Yii::$app->session->setFlash('error', Yii::t('user', 'Нельзя отвязать единственную соц. сеть, не заполнив Email'));
             } elseif (UserOauthKey::isOAuth($user->id) <= 1 && $user->password_hash === null) {
                 Yii::$app->session->setFlash('error', Yii::t('user', 'Нельзя отвязать единственную соц. сеть, не заполнив пароль'));
             } else {
                 $key->delete();
                 Yii::$app->session->setFlash('success', Yii::t('user', 'Ключ входа удален'));
             }
         }
     }
     return $this->redirect(Yii::$app->request->referrer);
 }