X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fprofileformaction.php;h=9ace6676c3b82fa16797c735f4b0630518dd429d;hb=bcb6dadc9f29eab6319704f59157425a9e0857c4;hp=92e8611b9c16ddb18b57ffbccebd74e1a59ad980;hpb=64677fc09a54546274a001ce9bec0fa4bc8132f7;p=quix0rs-gnu-social.git diff --git a/lib/profileformaction.php b/lib/profileformaction.php index 92e8611b9c..9ace6676c3 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,22 +58,32 @@ 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; } - $this->profile = Profile::staticGet('id', $id); + $this->profile = Profile::getKV('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; } return true; @@ -84,43 +92,17 @@ class ProfileFormAction extends Action /** * Handle request * - * Shows a page with list of favorite notices - * * @param array $args $_REQUEST args; handled in prepare() * * @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 +113,9 @@ class ProfileFormAction extends Action * * @return void */ - function handlePost() { - return; + // TRANS: Server error displayed when using an unimplemented method. + $this->serverError(_("Unimplemented method.")); } }