/** * Finds user by [[username]] * * @return User|null */ public function getUser() { if ($this->_user === false) { $this->_user = User::findByUsername($this->username); } return $this->_user; }
/** * Finds user by [[username]] * * @return User|null */ public function getUser() { if ($this->_user === false) { $client = Yii::$app->authClientCollection->getClient('facebook'); if ($this->fb_token) { $token = new \yii\authclient\OAuthToken(); $token->setToken($this->fb_token); $client->setAccessToken($token); } $picture = $client->api('me?fields=picture', 'GET'); $profile = $client->api('me?fields=id,first_name,last_name,gender,email', 'GET'); $user = User::find()->andWhere(['fb_uid' => $profile['id']])->one(); if (!$user) { $user = new User(); $user->fb_uid = $profile['id']; $user->email = $profile['email']; $user->generateAuthKey(); $user->first_name = $profile['first_name']; $user->last_name = $profile['last_name']; $user->setGender($profile['gender']); $user->save(); if (isset($picture['picture']['data']['url'])) { // save image of user facebook if isset $user->setImageFromFB($picture['picture']['data']['url']); $user->save(); } } $this->_user = $user; } return $this->_user; }
public function actionLogin() { $model = new LoginForm(); $jwt = new \Yii::$app->jwt(); if ($model->load(\Yii::$app->getRequest()->getBodyParams(), '') && $model->login()) { $userModel = User::findByUsername($model->username); $token['username'] = $userModel->username; $userInfo = ['username' => $userModel->username, 'role' => $userModel->role]; $userInfo['token'] = $jwt::encode($token, $jwt->secret_key); echo json_encode($userInfo); } else { return $model; } }
public function testSendEmailCorrectUser() { $model = new PasswordResetRequestForm(); $model->email = $this->user[0]['email']; $user = User::findOne(['password_reset_token' => $this->user[0]['password_reset_token']]); expect('email sent', $model->sendEmail())->true(); expect('user has valid token', $user->password_reset_token)->notNull(); $this->specify('message has correct format', function () use($model) { expect('message file exists', file_exists($this->getMessageFile()))->true(); $message = file_get_contents($this->getMessageFile()); expect('message "from" is correct', $message)->contains(Yii::$app->params['supportEmail']); expect('message "to" is correct', $message)->contains($model->email); }); }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = User::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params, ''); if (!$this->validate()) { return $dataProvider; } if (!$this->lat || !$this->lon) { $this->lat = Yii::$app->user->identity->lat; $this->lon = Yii::$app->user->identity->lon; } // @TODO : FULL TEXT NOT WORK(not found to back search only to front) $search_string = explode(" ", $this->search_string); $query->andWhere(['like', 'first_name', $search_string])->orWhere(['like', 'last_name', $search_string]); // @ENDTODO if ($this->radius) { $query->andWhere("acos(sin(lat * 0.0175) * sin(:lat * 0.0175)\n + cos(lat * 0.0175) * cos(:lat * 0.0175) *\n cos((:lng * 0.0175) - (lon * 0.0175))\n ) * 3959 <= :radius", [':lat' => $this->lat, ':lng' => $this->lon, ':radius' => $this->radius]); } return $dataProvider; }
/** * This method is called after each cest class test method, even if test failed. * @param \Codeception\Event\TestEvent $event */ public function _after($event) { User::deleteAll(['email' => '*****@*****.**', 'username' => 'tester']); }