/** * Select all records from user_auth for current user and extract provider attributes * @return array */ public static function getKeychainConnects() { $connectedAccounts = []; $accounts = UserAuth::find()->where(['user_id' => \Yii::$app->user->id])->orderBy('create_time')->all(); if ($accounts) { foreach ($accounts as $account) { switch ($account->provider) { case 'google': $connectedAccounts[] = self::parseGoogleProviderAttributes($account); break; case 'facebook': $connectedAccounts[] = self::parseFacebookProviderAttributes($account); break; case 'twitter': $connectedAccounts[] = self::parseTwitterProviderAttributes($account); break; case 'vkontakte': $connectedAccounts[] = self::parseVkontakteProviderAttributes($account); break; } } } return $connectedAccounts; }
/** * Returns 'true' if $provider_id is not persist into user_auth * @param $provider_id * @return bool */ protected function checkIsAlreadyConnected($provider_id) { $count = UserAuth::find()->where(['provider_id' => $provider_id])->count(); return !($count > 0); }