X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fprofileformaction.php;h=b5f2e5d2a31232c3773d193dc2e9b3818fad4bc9;hb=25198a8d4cee5b2182f1ecb99192a4108a01afa4;hp=8cb5f6a932bd72baaec87a52be6d764464ec7673;hpb=bac2d80c919a78d5cafd57f712872a90cda04847;p=quix0rs-gnu-social.git diff --git a/lib/profileformaction.php b/lib/profileformaction.php index 8cb5f6a932..b5f2e5d2a3 100644 --- a/lib/profileformaction.php +++ b/lib/profileformaction.php @@ -40,8 +40,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 * @link http://status.net/ */ - -class ProfileFormAction extends Action +class ProfileFormAction extends RedirectingAction { var $profile = null; @@ -52,7 +51,6 @@ class ProfileFormAction extends Action * * @return boolean success flag */ - function prepare($args) { parent::prepare($args); @@ -60,13 +58,24 @@ class ProfileFormAction extends Action $this->checkSessionToken(); if (!common_logged_in()) { - $this->clientError(_('Not logged in.')); + if ($_SERVER['REQUEST_METHOD'] == 'POST') { + // TRANS: Error message displayed when trying to perform an action that requires a logged in user. + $this->clientError(_('Not logged in.')); + } else { + // Redirect to login. + common_set_returnto($this->selfUrl()); + $user = common_current_user(); + if (Event::handle('RedirectToLogin', array($this, $user))) { + common_redirect(common_local_url('login'), 303); + } + } return false; } $id = $this->trimmed('profileid'); if (!$id) { + // TRANS: Client error displayed when trying to change user options without specifying a user to work on. $this->clientError(_('No profile specified.')); return false; } @@ -74,6 +83,7 @@ class ProfileFormAction extends Action $this->profile = Profile::staticGet('id', $id); if (!$this->profile) { + // TRANS: Client error displayed when trying to change user options without specifying an existing user to work on. $this->clientError(_('No profile with that ID.')); return false; } @@ -90,37 +100,13 @@ class ProfileFormAction extends Action * * @return void */ - function handle($args) { parent::handle($args); if ($_SERVER['REQUEST_METHOD'] == 'POST') { $this->handlePost(); - $this->returnToArgs(); - } - } - - /** - * Return to the calling page based on hidden arguments - * - * @return void - */ - - function returnToArgs() - { - foreach ($this->args as $k => $v) { - if ($k == 'returnto-action') { - $action = $v; - } else if (substr($k, 0, 9) == 'returnto-') { - $args[substr($k, 9)] = $v; - } - } - - if ($action) { - common_redirect(common_local_url($action, $args), 303); - } else { - $this->clientError(_("No return-to arguments")); + $this->returnToPrevious(); } } @@ -131,9 +117,9 @@ class ProfileFormAction extends Action * * @return void */ - function handlePost() { - $this->serverError(_("unimplemented method")); + // TRANS: Server error displayed when using an unimplemented method. + $this->serverError(_("Unimplemented method.")); } }