X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Fatompubshowsubscription.php;h=d80dd609e3aba1dfcff24f222d3127f7d8e9d01a;hb=d6b28c64830f632bb2f4b6f3c9369b9e56ad217a;hp=aeff0cbf2a5c6bcec305c41535278f7eb0e8e7ce;hpb=8884a5255fb90fda67b63fa0d4252d77176337e5;p=quix0rs-gnu-social.git diff --git a/actions/atompubshowsubscription.php b/actions/atompubshowsubscription.php index aeff0cbf2a..d80dd609e3 100644 --- a/actions/atompubshowsubscription.php +++ b/actions/atompubshowsubscription.php @@ -28,13 +28,7 @@ * @link http://status.net/ */ -if (!defined('STATUSNET')) { - // This check helps protect against security problems; - // your code file can't be executed directly from the web. - exit(1); -} - -require_once INSTALLDIR . '/lib/apiauth.php'; +if (!defined('GNUSOCIAL') && !defined('STATUSNET')) { exit(1); } /** * Show a single subscription @@ -46,27 +40,19 @@ require_once INSTALLDIR . '/lib/apiauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 * @link http://status.net/ */ -class AtompubshowsubscriptionAction extends ApiAuthAction +class AtompubshowsubscriptionAction extends AtompubAction { private $_subscriber = null; private $_subscribed = null; private $_subscription = null; - /** - * For initializing members of the class. - * - * @param array $argarray misc. arguments - * - * @return boolean true - */ - function prepare($argarray) + protected function atompubPrepare() { - parent::prepare($argarray); $subscriberId = $this->trimmed('subscriber'); - $this->_subscriber = Profile::staticGet('id', $subscriberId); + $this->_subscriber = Profile::getKV('id', $subscriberId); - if (empty($this->_subscriber)) { + if (!$this->_subscriber instanceof Profile) { // TRANS: Client exception thrown when trying to display a subscription for a non-existing profile ID. // TRANS: %d is the non-existing profile ID number. throw new ClientException(sprintf(_('No such profile id: %d.'), @@ -75,20 +61,18 @@ class AtompubshowsubscriptionAction extends ApiAuthAction $subscribedId = $this->trimmed('subscribed'); - $this->_subscribed = Profile::staticGet('id', $subscribedId); + $this->_subscribed = Profile::getKV('id', $subscribedId); - if (empty($this->_subscribed)) { + if (!$this->_subscribed instanceof Profile) { // TRANS: Client exception thrown when trying to display a subscription for a non-existing profile ID. // TRANS: %d is the non-existing profile ID number. throw new ClientException(sprintf(_('No such profile id: %d.'), $subscribedId), 404); } - $this->_subscription = - Subscription::pkeyGet(array('subscriber' => $subscriberId, - 'subscribed' => $subscribedId)); - - if (empty($this->_subscription)) { + $this->_subscription = Subscription::pkeyGet(array('subscriber' => $subscriberId, + 'subscribed' => $subscribedId)); + if (!$this->_subscription instanceof Subscription) { // TRANS: Client exception thrown when trying to display a subscription for a non-subscribed profile ID. // TRANS: %1$d is the non-existing subscriber ID number, $2$d is the ID of the profile that was not subscribed to. $msg = sprintf(_('Profile %1$d not subscribed to profile %2$d.'), @@ -99,31 +83,14 @@ class AtompubshowsubscriptionAction extends ApiAuthAction return true; } - /** - * Handler method - * - * @param array $argarray is ignored since it's now passed in in prepare() - * - * @return void - */ - function handle($argarray=null) + protected function handleGet() { - parent::handle($argarray); - switch ($_SERVER['REQUEST_METHOD']) { - case 'HEAD': - case 'GET': - $this->showSubscription(); - break; - case 'DELETE': - $this->deleteSubscription(); - break; - default: - // TRANS: Client error shown when using a non-supported HTTP method. - $this->clientError(_('HTTP method not supported.'), 405); - return; - } + $this->showSubscription(); + } - return; + protected function handleDelete() + { + $this->deleteSubscription(); } /** @@ -140,8 +107,6 @@ class AtompubshowsubscriptionAction extends ApiAuthAction $this->startXML(); $this->raw($activity->asString(true, true, true)); $this->endXML(); - - return; } /** @@ -151,17 +116,13 @@ class AtompubshowsubscriptionAction extends ApiAuthAction */ function deleteSubscription() { - if (empty($this->auth_user) || - $this->auth_user->id != $this->_subscriber->id) { + if (!$this->scoped instanceof Profile || + $this->scoped->id != $this->_subscriber->id) { // TRANS: Client exception thrown when trying to delete a subscription of another user. - throw new ClientException(_("Cannot delete someone else's ". - "subscription."), 403); + throw new ClientException(_("Cannot delete someone else's subscription."), 403); } - Subscription::cancel($this->_subscriber, - $this->_subscribed); - - return; + Subscription::cancel($this->_subscriber, $this->_subscribed); } /** @@ -171,13 +132,13 @@ class AtompubshowsubscriptionAction extends ApiAuthAction * * @return boolean true */ - function isReadOnly($args) + function isReadOnly(array $args=array()) { if ($_SERVER['REQUEST_METHOD'] == 'DELETE') { return false; - } else { - return true; } + + return true; } /**