]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/profileformaction.php
Merge branch '0.9.x' into 1.0.x
[quix0rs-gnu-social.git] / lib / profileformaction.php
index 0ffafe5fb8d1279aeea4828b4da54c38869dae7a..57065282239c2e74702931c39fcb77af6712db14 100644 (file)
@@ -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,7 +51,6 @@ class ProfileFormAction extends RedirectingAction
      *
      * @return boolean success flag
      */
-
     function prepare($args)
     {
         parent::prepare($args);
@@ -60,13 +58,24 @@ class ProfileFormAction extends RedirectingAction
         $this->checkSessionToken();
 
         if (!common_logged_in()) {
-            $this->clientError(_('Not logged in.'));
+            if ($_SERVER['REQUEST_METHOD'] == 'POST') {
+                // TRANS: Client error displayed when trying to change user options while not logged in.
+                $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 RedirectingAction
         $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,14 +100,13 @@ class ProfileFormAction extends RedirectingAction
      *
      * @return void
      */
-
     function handle($args)
     {
         parent::handle($args);
 
         if ($_SERVER['REQUEST_METHOD'] == 'POST') {
             $this->handlePost();
-            $this->returnToArgs();
+            $this->returnToPrevious();
         }
     }
 
@@ -108,9 +117,9 @@ class ProfileFormAction extends RedirectingAction
      *
      * @return void
      */
-
     function handlePost()
     {
+        // TRANS: Server error displayed when using an unimplemented method.
         $this->serverError(_("Unimplemented method."));
     }
 }