示例#1
0
 /**
  * Disconnect user from service
  *
  * @param	   string	$service	Service name (google or dropbox)
  *
  * @return	   JSON string or false
  */
 public function disconnectMember($service, $uid = 0, $remoteid = 0)
 {
     if (!$uid) {
         return false;
     }
     $objO = $this->model->table('Owner');
     $objO->loadOwner($this->model->get('id'), $uid);
     $creator = $uid == $this->model->get('owned_by_user') ? 1 : 0;
     // Get connection email & name
     $email = $this->getStoredParam($service . '_email', $uid);
     $name = $this->getStoredParam($service . '_name', $uid);
     // Remove token
     $objO->saveParam($this->model->get('id'), $uid, $param = $service . '_token', '');
     // Remove time
     $objO->saveParam($this->model->get('id'), $uid, $param = $service . '_token_created', '');
     // Remove email
     $objO->saveParam($this->model->get('id'), $uid, $param = $service . '_email', '');
     // Remove name
     $objO->saveParam($this->model->get('id'), $uid, $param = $service . '_name', '');
     // Remove user id
     $objO->saveParam($this->model->get('id'), $uid, $param = $service . '_userid', '');
     if (!$email || !$name || !$remoteid) {
         return;
     }
     // Get api
     $apiService = $this->getAPI($service, $this->model->owner('id'));
     if (!$apiService) {
         $this->setError(Lang::txt('PLG_PROJECTS_FILES_SYNC_API_UNAVAILABLE'));
         return false;
     }
     // Remove permission
     if ($service == 'google' && !$creator) {
         Google::clearPermissions($apiService, array($name => $email), $remoteid);
     }
 }