/** * 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); } }