/** * Tries to connect social account to user. * * @param ClientInterface $client */ public function connect(ClientInterface $client) { /** @var Account $account */ $account = Yii::createObject(Account::className()); $event = $this->getAuthEvent($account, $client); $this->trigger(self::EVENT_BEFORE_CONNECT, $event); $account->connectWithUser($client); $this->trigger(self::EVENT_AFTER_CONNECT, $event); $this->action->successUrl = Url::to(['/user/settings/networks']); }
/** * @return Account[] Connected accounts ($provider => $account) */ public function getAccounts() { $connected = []; $accounts = $this->hasMany(Account::className(), ['user_id' => 'id'])->all(); /** @var Account $account */ foreach ($accounts as $account) { $connected[$account->provider] = $account; } return $connected; }