/** * Store the user's profile data in the database, if it doesn't exist yet. * @param Zend_Oauth_Token_Access $accessToken * @return Void */ protected function _getUserData(Zend_Oauth_Token_Access $accessToken) { $authVars = $this->_getAuthVars(); $token = $accessToken->getToken(); $tokenSecret = $accessToken->getTokenSecret(); $vimeoService = new Garp_Service_Vimeo_Pro($authVars->consumerKey, $authVars->consumerSecret, $token, $tokenSecret); $userDataFromVimeo = $vimeoService->people->getInfo($token); $id = $userDataFromVimeo['id']; $ini = Zend_Registry::get('config'); $sessionColumns = Zend_Db_Select::SQL_WILDCARD; if (!empty($ini->auth->login->sessionColumns)) { $sessionColumns = $ini->auth->login->sessionColumns; $sessionColumns = explode(',', $sessionColumns); } $userModel = new Model_User(); $userConditions = $userModel->select()->from($userModel->getName(), $sessionColumns); $model = new Model_AuthVimeo(); $model->bindModel('Model_User', array('conditions' => $userConditions)); $userData = $model->fetchRow($model->select()->where('vimeo_id = ?', $id)); if (!$userData || !$userData->Model_User) { $userData = $model->createNew($id, $accessToken, $this->_mapProperties($userDataFromVimeo)); } else { $model->getObserver('Authenticatable')->updateLoginStats($userData->user_id); $userData = $userData->Model_User; } return $userData; }
/** * Set Vimeo access token * @param Garp_Service_Vimeo_Pro $vimeo * @return Void */ protected function _setVimeoAccessToken(Garp_Service_Vimeo_Pro $vimeo) { // See if the currently logged in user has Vimeo credentials related to her, and use the token // and token secret. That way a user can fetch private videos thru the API. $garpAuth = Garp_Auth::getInstance(); if (!$garpAuth->isLoggedIn()) { return; } $currentUser = $garpAuth->getUserData(); $authVimeoModel = new Model_AuthVimeo(); $authVimeoRecord = $authVimeoModel->fetchRow($authVimeoModel->select()->where('user_id = ?', $currentUser['id'])); if ($authVimeoRecord) { $vimeo->setAccessToken($authVimeoRecord->access_token); $vimeo->setAccessTokenSecret($authVimeoRecord->access_token_secret); } }