]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/profileformaction.php
For good measure, don't return autocomplete results when not logged in.
[quix0rs-gnu-social.git] / lib / profileformaction.php
index 8cb5f6a932bd72baaec87a52be6d764464ec7673..51c89a922ea9b57ac7ae73952b546b2c21a59b18 100644 (file)
@@ -41,7 +41,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
  * @link     http://status.net/
  */
 
-class ProfileFormAction extends Action
+class ProfileFormAction extends RedirectingAction
 {
     var $profile = null;
 
@@ -60,7 +60,16 @@ class ProfileFormAction extends Action
         $this->checkSessionToken();
 
         if (!common_logged_in()) {
-            $this->clientError(_('Not logged in.'));
+            if ($_SERVER['REQUEST_METHOD'] == 'POST') {
+                $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;
         }
 
@@ -97,30 +106,7 @@ class ProfileFormAction extends Action
 
         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();
         }
     }
 
@@ -134,6 +120,6 @@ class ProfileFormAction extends Action
 
     function handlePost()
     {
-        $this->serverError(_("unimplemented method"));
+        $this->serverError(_("Unimplemented method."));
     }
 }