]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/profileformaction.php
Merge remote-tracking branch 'upstream/master' into social-master
[quix0rs-gnu-social.git] / lib / profileformaction.php
index 0ffafe5fb8d1279aeea4828b4da54c38869dae7a..75f4359c9d8dd6c8b7c8780d4eff21cdde867c4e 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,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."));
     }
 }