Example #1
0
 protected function createKey($attributes, $user_id)
 {
     $key = new UserOauthKey();
     $key->provider_id = $attributes['provider_id'];
     $key->provider_user_id = $attributes['provider_user_id'];
     $key->user_id = $user_id;
     return $key->save();
 }
Example #2
0
 /**
  * @inheritdoc
  */
 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' => ['email' => isset($this->accessToken->params['email']) ? $this->accessToken->params['email'] : null, 'username' => $attributes['first_name'] . ' ' . $attributes['last_name'], 'photo' => $attributes['photo_200'], 'sex' => $this->normalizeSex()[$attributes['sex']]], 'provider_user_id' => $attributes['uid'], 'provider_id' => UserOauthKey::getAvailableClients()['vkontakte']];
     return $return_attributes;
 }
Example #3
0
 /**
  * @inheritdoc
  */
 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' => ['email' => $verifiedEmail, 'username' => $attributes['login'], 'photo' => $attributes['avatar_url'], 'sex' => User::SEX_MALE], 'provider_user_id' => $attributes['id'], 'provider_id' => UserOauthKey::getAvailableClients()['github']];
     return $return_attributes;
 }
Example #4
0
 /**
  * Outputs client auth link.
  * @param ClientInterface $client external auth client instance.
  * @param string $text link text, if not set - default value will be generated.
  * @param array $htmlOptions link HTML options.
  * @throws InvalidConfigException on wrong configuration.
  */
 public function clientLink($client, $text = null, array $htmlOptions = [])
 {
     echo Html::beginTag('div', ['class' => 'col-xs-6']);
     $exists = UserOauthKey::findOne(['user_id' => Yii::$app->user->id, 'provider_id' => UserOauthKey::getAvailableClients()[$client->getId()]]);
     if ($exists) {
         $button = Html::a('<span class="glyphicon glyphicon-trash" aria-hidden="true"></span> <span class="hidden-md">' . Yii::t('yii', 'Delete') . '</span>', Url::toRoute(['/user/auth/unbind', 'id' => $client->getId()]), ['class' => 'btn btn-danger btn-sm', 'onclick' => '$(this).off("click"); return true;']);
     } else {
         $viewOptions = $client->getViewOptions();
         if (isset($viewOptions['popupWidth'])) {
             $htmlOptions['data-popup-width'] = $viewOptions['popupWidth'];
         }
         if (isset($viewOptions['popupHeight'])) {
             $htmlOptions['data-popup-height'] = $viewOptions['popupHeight'];
         }
         $htmlOptions['class'] = 'btn btn-success btn-sm';
         $button = Html::a('<span class="glyphicon glyphicon-plus" aria-hidden="true"></span> <span class="hidden-md">' . Yii::t('users', 'ADD') . '</span>', $this->createClientUrl($client), $htmlOptions);
     }
     echo Html::tag('span', $button, ['class' => 'auth-icon ' . $client->getName(), 'style' => 'padding-left: 40px; margin-bottom: 10px;']);
     echo Html::endTag('div');
 }
Example #5
0
 /**
  * @inheritdoc
  */
 protected function initUserAttributes()
 {
     $attributes = $this->api('people/~:(' . implode(',', ['id', 'email-address', 'first-name', 'last-name', 'picture-urls::(original)']) . ')', 'GET');
     $return_attributes = ['User' => ['email' => $attributes['email-address'], 'username' => $attributes['first-name'] . ' ' . $attributes['last-name'], 'photo' => isset($attributes['picture-urls']) ? $attributes['picture-urls']['picture-url'] : '', 'sex' => User::SEX_MALE], 'provider_user_id' => $attributes['id'], 'provider_id' => UserOauthKey::getAvailableClients()['linkedin']];
     return $return_attributes;
 }
Example #6
0
 /**
  * @inheritdoc
  */
 protected function initUserAttributes()
 {
     $attributes = $this->api('me', 'GET', ['fields' => implode(',', ['id', 'email', 'name', 'picture.height(200).width(200)', 'gender'])]);
     $return_attributes = ['User' => ['email' => $attributes['email'], 'username' => $attributes['name'], 'photo' => $attributes['picture']['data']['url'], 'sex' => $this->normalizeSex()[$attributes['gender']]], 'provider_user_id' => $attributes['id'], 'provider_id' => UserOauthKey::getAvailableClients()['facebook']];
     return $return_attributes;
 }
Example #7
0
 /**
  * @inheritdoc
  */
 protected function initUserAttributes()
 {
     $attributes = $this->api('people/me', 'GET');
     $return_attributes = ['User' => ['email' => $attributes['emails'][0]['value'], 'username' => $attributes['displayName'], 'photo' => str_replace('sz=50', 'sz=200', $attributes['image']['url']), 'sex' => $this->normalizeSex()[$attributes['gender']]], 'provider_user_id' => $attributes['id'], 'provider_id' => UserOauthKey::getAvailableClients()['google']];
     return $return_attributes;
 }
Example #8
0
 /**
  * @inheritdoc
  */
 protected function initUserAttributes()
 {
     $attributes = $this->api('account/verify_credentials.json', 'GET');
     $return_attributes = ['User' => ['email' => null, 'username' => $attributes['name'], 'photo' => '', 'sex' => User::SEX_MALE], 'provider_user_id' => $attributes['id'], 'provider_id' => UserOauthKey::getAvailableClients()['twitter']];
     return $return_attributes;
 }
Example #9
0
 /**
  * @inheritdoc
  */
 protected function initUserAttributes()
 {
     $attributes = $this->api('me', 'GET');
     $return_attributes = ['User' => ['email' => $attributes['emails']['preferred'], 'username' => $attributes['name'], 'photo' => '', 'sex' => $attributes['gender'] != null ? $this->normalizeSex()[$attributes['gender']] : User::SEX_MALE], 'provider_user_id' => $attributes['id'], 'provider_id' => UserOauthKey::getAvailableClients()['live']];
     return $return_attributes;
 }
Example #10
0
 /**
  * @inheritdoc
  */
 protected function initUserAttributes()
 {
     $attributes = $this->api('info', 'GET');
     $return_attributes = ['User' => ['email' => $attributes['emails'][0], 'username' => $attributes['real_name'], 'photo' => 'https://avatars.yandex.net/get-yapic/' . $attributes['default_avatar_id'] . '/islands-200', 'sex' => $this->normalizeSex()[$attributes['sex']]], 'provider_user_id' => $attributes['id'], 'provider_id' => UserOauthKey::getAvailableClients()['yandex']];
     return $return_attributes;
 }
Example #11
0
 public function getOauthKeys()
 {
     return $this->hasMany(UserOauthKey::className(), 'user_id');
 }