X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Fatompubshowmembership.php;h=16196917698ac5c8e2706929477329dab0de6064;hb=c18020561b8a01bbb2b3fc092694a7bb0fde70f9;hp=6d848a2290e36e8890307b022cbcac97e23316cd;hpb=6e894c010fc0e7ddaaafa8795634d6343019aafb;p=quix0rs-gnu-social.git diff --git a/actions/atompubshowmembership.php b/actions/atompubshowmembership.php index 6d848a2290..1619691769 100644 --- a/actions/atompubshowmembership.php +++ b/actions/atompubshowmembership.php @@ -4,7 +4,7 @@ * Copyright (C) 2010, StatusNet, Inc. * * Show a single membership as an Activity Streams entry - * + * * PHP version 5 * * This program is free software: you can redistribute it and/or modify @@ -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 (or delete) a single membership event as an ActivityStreams entry @@ -46,76 +40,47 @@ 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 AtompubshowmembershipAction extends ApiAuthAction +class AtompubshowmembershipAction extends AtompubAction { - private $_profile = null; + private $_private = null; private $_group = null; private $_membership = null; - /** - * For initializing members of the class. - * - * @param array $argarray misc. arguments - * - * @return boolean true - */ - - function prepare($argarray) + protected function atompubPrepare() { - parent::prepare($argarray); + $this->_profile = Profile::getKV('id', $this->trimmed('profile')); - $profileId = $this->trimmed('profile'); - - $this->_profile = Profile::staticGet('id', $profileId); - - if (empty($this->_profile)) { + if (!$this->_profile instanceof Profile) { + // TRANS: Client exception. throw new ClientException(_('No such profile.'), 404); } - $groupId = $this->trimmed('group'); - - $this->_group = User_group::staticGet('id', $groupId); + $this->_group = User_group::getKV('id', $this->trimmed('group')); - if (empty($this->_group)) { - throw new ClientException(_('No such group'), 404); + if (!$this->_group instanceof User_group) { + // TRANS: Client exception thrown when referencing a non-existing group. + throw new ClientException(_('No such group.'), 404); } $kv = array('group_id' => $groupId, - 'profile_id' => $profileId); + 'profile_id' => $this->_profile->id); $this->_membership = Group_member::pkeyGet($kv); - if (empty($this->_membership)) { - throw new ClientException(_('Not a member'), 404); + if (!$this->_membership instanceof Group_member) { + // TRANS: Client exception thrown when trying to show membership of a non-subscribed group + throw new ClientException(_('Not a member.'), 404); } return true; } - /** - * Handler method - * - * @param array $argarray is ignored since it's now passed in in prepare() - * - * @return void - */ + protected function handleGet() { + return $this->showMembership(); + } - function handle($argarray=null) - { - switch ($_SERVER['REQUEST_METHOD']) { - case 'GET': - case 'HEAD': - $this->showMembership(); - break; - case 'DELETE': - $this->deleteMembership(); - break; - default: - throw new ClientException(_('Method not supported'), 405); - break; - } - return; + protected function handleDelete() { + return $this->deleteMembership(); } /** @@ -123,7 +88,6 @@ class AtompubshowmembershipAction extends ApiAuthAction * * @return void */ - function showMembership() { $activity = $this->_membership->asActivity(); @@ -142,43 +106,20 @@ class AtompubshowmembershipAction extends ApiAuthAction * * @return void */ - function deleteMembership() { if (empty($this->auth_user) || $this->auth_user->id != $this->_profile->id) { - throw new ClientException(_("Can't delete someone else's". - " membership"), 403); + // TRANS: Client exception thrown when deleting someone else's membership. + throw new ClientException(_("Cannot delete someone else's". + " membership."), 403); } - if (Event::handle('StartLeaveGroup', array($this->_group, $this->auth_user))) { - Group_member::leave($this->_group->id, $this->auth_user->id); - Event::handle('EndLeaveGroup', array($this->_group, $this->auth_user)); - } + $this->auth_user->leaveGroup($this->_group); return; } - /** - * Return true if read only. - * - * MAY override - * - * @param array $args other arguments - * - * @return boolean is read only action? - */ - - function isReadOnly($args) - { - if ($_SERVER['REQUEST_METHOD'] == 'GET' || - $_SERVER['REQUEST_METHOD'] == 'HEAD') { - return true; - } else { - return false; - } - } - /** * Return last modified, if applicable. * @@ -203,7 +144,6 @@ class AtompubshowmembershipAction extends ApiAuthAction * * @return string etag http header */ - function etag() { $ctime = strtotime($this->_membership->created); @@ -216,20 +156,4 @@ class AtompubshowmembershipAction extends ApiAuthAction $adminflag, $ctime)) . '"'; } - - /** - * Does this require authentication? - * - * @return boolean true if delete, else false - */ - - function requiresAuth() - { - if ($_SERVER['REQUEST_METHOD'] == 'GET' || - $_SERVER['REQUEST_METHOD'] == 'HEAD') { - return false; - } else { - return true; - } - } }