/** * */ protected static function getClient(\GO\Base\Model\User $user = null) { if (!isset($user)) { $user = \GO::user(); } if (!isset(self::$client[$user->id])) { $dbxUser = User::model()->findByPk($user->id); if (!$dbxUser) { throw new \Exception("User isn't connected"); } if (empty($dbxUser->access_token)) { throw new \Exception("Access token was cleared. Please reconnect."); } $client = new DropboxClient(); $client->SetAccessToken(@unserialize($dbxUser->access_token)); self::$client[$user->id] = $client; } return self::$client[$user->id]; }
protected function actionCallback() { $dropbox = new DropboxClient(); $requestToken = @unserialize(GO::session()->values['dropbox_request_token']); unset(GO::session()->values['dropbox_request_token']); $accessToken = $dropbox->GetAccessToken($requestToken); $user = User::model()->findByPk(GO::user()->id); if (!$user) { $user = new User(); $user->user_id = GO::user()->id; } $user->dropbox_user_id = $dropbox->uid; $user->access_token = serialize($accessToken); $user->save(); if ($dropbox->IsAuthorized()) { $this->render("externalHeader"); echo "<h1>" . GO::t('connected', 'dropbox') . "</h1>"; echo "<p>" . GO::t('done', 'dropbox') . "</p>"; //echo '<a href="'.\GO::url('dropbox/auth/sync').'">'.\GO::t('syncNow','dropbox').'</p>'; echo '<button onclick="window.close();">' . GO::t('cmdClose') . '</button>'; $this->render("externalFooter"); } }