]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Extensions of GalleryActions enabled again (nickname check)
authorMikael Nordfeldth <mmn@hethane.se>
Fri, 5 Jun 2015 19:50:00 +0000 (21:50 +0200)
committerMikael Nordfeldth <mmn@hethane.se>
Fri, 5 Jun 2015 19:50:00 +0000 (21:50 +0200)
lib/galleryaction.php

index 4fdd97d468331b0bbf942ad31fc3297cc2c49031..f87043ac063840ced2c0d16fed372e1d2f0e1a45 100644 (file)
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-if (!defined('STATUSNET') && !defined('LACONICA')) {
-    exit(1);
-}
-
-require_once INSTALLDIR.'/lib/profilelist.php';
+if (!defined('GNUSOCIAL')) { exit(1); }
 
 // 10x8
 
@@ -40,6 +36,35 @@ class GalleryAction extends ProfileAction
         parent::handle();
     }
 
+    protected function doPreparation()
+    {
+        // showstream requires a nickname
+        $nickname_arg = $this->arg('nickname');
+        $nickname     = common_canonical_nickname($nickname_arg);
+
+        // Permanent redirect on non-canonical nickname
+
+        if ($nickname_arg != $nickname) {
+            $args = array('nickname' => $nickname);
+            if ($this->arg('page') && $this->arg('page') != 1) {
+                $args['page'] = $this->arg['page'];
+            }
+            common_redirect(common_local_url($this->getActionName(), $args), 301);
+        }
+        $this->user = User::getKV('nickname', $nickname);
+
+        if (!$this->user) {
+            $group = Local_group::getKV('nickname', $nickname);
+            if ($group instanceof Local_group) {
+                common_redirect($group->getProfile()->getUrl());
+            }
+            // TRANS: Client error displayed when calling a profile action without specifying a user.
+            $this->clientError(_('No such user.'), 404);
+        }
+
+        $this->target = $this->user->getProfile();
+    }
+
     function showContent()
     {
         $this->showTagsDropdown();