Пример #1
0
 /**
  * Получение аттрибутов
  * @return array
  * @throws \yii\base\Exception
  */
 protected function initUserAttributes()
 {
     $attributes = $this->api('users.get.json', 'GET', ['fields' => implode(',', ['uid', 'first_name', 'last_name', 'photo_200', 'sex'])]);
     $attributes = array_shift($attributes['response']);
     $return_attributes = ['User' => [$this->first_name => $attributes['first_name'], $this->last_name => $attributes['last_name'], $this->avatar => $attributes['photo_200'], $this->gender => $this->normalizeSex()[$attributes['sex']], $this->email => isset($this->accessToken->params['email']) ? $this->accessToken->params['email'] : null, $this->status => $this->statusActive], 'provider_user_id' => $attributes['uid'], 'provider_id' => UserOauthKey::getAvailableClients()['vkontakte'], 'page' => $attributes['uid']];
     return $return_attributes;
 }
Пример #2
0
 /**
  * Получение аттрибутов
  * @return array
  * @throws \yii\base\Exception
  */
 protected function initUserAttributes()
 {
     $attributes = $this->api('user', 'GET');
     $emails = $this->api('user/emails', 'GET');
     $verifiedEmail = '';
     foreach ($emails as $email) {
         if ($email['verified'] && $email['primary']) {
             $verifiedEmail = $email['email'];
         }
     }
     $return_attributes = ['User' => [$this->email => $verifiedEmail, $this->first_name => $attributes['login'], $this->avatar => $attributes['avatar_url'], $this->gender => $this->male, $this->status => $this->statusActive], 'provider_user_id' => $attributes['id'], 'provider_id' => UserOauthKey::getAvailableClients()['github'], 'page' => $attributes['login']];
     return $return_attributes;
 }
Пример #3
0
 /**
  * Получение аттрибутов
  * @return array
  * @throws \yii\base\Exception
  */
 protected function initUserAttributes()
 {
     $attributes = $this->api('people/~:(' . implode(',', $this->attributeNames) . ')', 'GET');
     $return_attributes = ['User' => [$this->email => $attributes['email-address'], $this->first_name => $attributes['first-name'], $this->last_name => $attributes['last-name'], $this->status => $this->statusActive], 'provider_user_id' => $attributes['id'], 'provider_id' => UserOauthKey::getAvailableClients()['yandex'], 'page' => $attributes['public-profile-url']];
     return $return_attributes;
 }
Пример #4
0
 /**
  * Получение аттрибутов
  * @return array
  * @throws \yii\base\Exception
  */
 protected function initUserAttributes()
 {
     $attributes = $this->api('me', 'GET', ['fields' => implode(',', ['id', 'email', 'first_name', 'last_name', 'picture.height(200).width(200)', 'gender'])]);
     $return_attributes = ['User' => [$this->email => $attributes['email'], $this->first_name => $attributes['first_name'], $this->last_name => $attributes['last_name'], $this->avatar => $attributes['picture']['data']['url'], $this->gender => $this->normalizeSex()[$attributes['gender']], $this->status => $this->statusActive], 'provider_user_id' => $attributes['id'], 'provider_id' => UserOauthKey::getAvailableClients()['facebook'], 'page' => $attributes['id']];
     return $return_attributes;
 }
Пример #5
0
 /**
  * Получение аттрибутов
  * @return array
  * @throws \yii\base\Exception
  */
 protected function initUserAttributes()
 {
     $attributes = $this->api('people/me', 'GET');
     $return_attributes = ['User' => [$this->email => $attributes['emails'][0]['value'], $this->first_name => $attributes['name']['givenName'], $this->last_name => $attributes['name']['familyName'], $this->avatar => str_replace('sz=50', 'sz=200', $attributes['image']['url']), $this->gender => $this->normalizeSex()[$attributes['gender']], $this->status => $this->statusActive], 'provider_user_id' => $attributes['id'], 'provider_id' => UserOauthKey::getAvailableClients()['google'], 'page' => $attributes['id']];
     return $return_attributes;
 }
Пример #6
0
 /**
  * Получение аттрибутов
  * @return array
  * @throws \yii\base\Exception
  */
 protected function initUserAttributes()
 {
     $attributes = $this->api('info', 'GET');
     $return_attributes = ['User' => [$this->email => $attributes['emails'][0], $this->first_name => $attributes['first_name'], $this->last_name => $attributes['last_name'], $this->avatar => 'https://avatars.yandex.net/get-yapic/' . $attributes['default_avatar_id'] . '/islands-200', $this->gender => $this->normalizeSex()[$attributes['sex']], $this->status => $this->statusActive], 'provider_user_id' => $attributes['id'], 'provider_id' => UserOauthKey::getAvailableClients()['yandex'], 'page' => null];
     return $return_attributes;
 }
Пример #7
0
 /**
  * Удлаение ключа авторизации соц. сети (отвзяывание)
  * @param $id - ID ключа авторизации
  * @return \yii\web\Response
  */
 public function actionUnbind($id)
 {
     $modelUser = $this->modelUser;
     /** @var UserOauthKey $model */
     $model = UserOauthKey::findOne(['user_id' => \Yii::$app->user->id, 'provider_id' => UserOauthKey::getAvailableClients()[$id]]);
     if (!$model) {
         \Yii::$app->session->set('message', ['type' => 'danger', 'icon' => 'glyphicon glyphicon-warning-sign', 'message' => \Yii::t('app', 'Ключ не найден')]);
     } else {
         /** @var User $user */
         $user = $modelUser::findOne($model->user_id);
         if ($user) {
             if (UserOauthKey::isOAuth($user->id) <= 1 && $user->email === null) {
                 \Yii::$app->session->set('message', ['type' => 'danger', 'icon' => 'glyphicon glyphicon-warning-sign', 'message' => \Yii::t('app', 'Нельзя отвязать единственную соц. сеть, не заполнив Email')]);
             } elseif (UserOauthKey::isOAuth($user->id) <= 1 && $user->password_hash === null) {
                 \Yii::$app->session->set('message', ['type' => 'danger', 'icon' => 'glyphicon glyphicon-warning-sign', 'message' => \Yii::t('app', 'Нельзя отвязать единственную соц. сеть, не заполнив пароль')]);
             } else {
                 $model->delete();
                 \Yii::$app->session->set('message', ['type' => 'danger', 'icon' => 'glyphicon glyphicon-ok', 'message' => \Yii::t('app', 'Ключ входа удален')]);
             }
         }
     }
     return $this->redirect(\Yii::$app->request->referrer);
 }
Пример #8
0
 /**
  * Получение аттрибутов
  * @return array
  * @throws \yii\base\Exception
  */
 protected function initUserAttributes()
 {
     $attributes = $this->api('account/verify_credentials.json', 'GET');
     $return_attributes = ['User' => [$this->email => '', $this->first_name => $attributes['name'], $this->avatar => '', $this->gender => $this->male, $this->status => $this->statusActive], 'provider_user_id' => $attributes['id'], 'provider_id' => UserOauthKey::getAvailableClients()['twitter'], 'page' => $attributes['screen_name']];
     return $return_attributes;
 }