X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fprofileformaction.php;h=75f4359c9d8dd6c8b7c8780d4eff21cdde867c4e;hb=d6b28c64830f632bb2f4b6f3c9369b9e56ad217a;hp=0ffafe5fb8d1279aeea4828b4da54c38869dae7a;hpb=3da50c19dfff7645dc46f1b836ebf4ecda726129;p=quix0rs-gnu-social.git diff --git a/lib/profileformaction.php b/lib/profileformaction.php index 0ffafe5fb8..75f4359c9d 100644 --- a/lib/profileformaction.php +++ b/lib/profileformaction.php @@ -40,7 +40,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 * @link http://status.net/ */ - class ProfileFormAction extends RedirectingAction { var $profile = null; @@ -52,30 +51,39 @@ class ProfileFormAction extends RedirectingAction * * @return boolean success flag */ - - function prepare($args) + function prepare(array $args=array()) { parent::prepare($args); $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,20 +92,17 @@ class ProfileFormAction extends RedirectingAction /** * Handle request * - * Shows a page with list of favorite notices - * * @param array $args $_REQUEST args; handled in prepare() * * @return void */ - - function handle($args) + function handle(array $args=array()) { parent::handle($args); if ($_SERVER['REQUEST_METHOD'] == 'POST') { $this->handlePost(); - $this->returnToArgs(); + $this->returnToPrevious(); } } @@ -108,9 +113,9 @@ class ProfileFormAction extends RedirectingAction * * @return void */ - function handlePost() { + // TRANS: Server error displayed when using an unimplemented method. $this->serverError(_("Unimplemented method.")); } }