]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/editgroup.php
Add AtomPub, Twitter-compat. API documentation to doc-src/
[quix0rs-gnu-social.git] / actions / editgroup.php
index befbd55992941714d6da921c9ce80dacb215137e..cca00ea6b91961727b72086936a5afd774af861e 100644 (file)
@@ -66,7 +66,6 @@ class EditgroupAction extends GroupAction
         if (!common_logged_in()) {
             // TRANS: Client error displayed trying to edit a group while not logged in.
             $this->clientError(_('You must be logged in to create a group.'));
-            return false;
         }
 
         $nickname_arg = $this->trimmed('nickname');
@@ -77,13 +76,11 @@ class EditgroupAction extends GroupAction
         if ($nickname_arg != $nickname) {
             $args = array('nickname' => $nickname);
             common_redirect(common_local_url('editgroup', $args), 301);
-            return false;
         }
 
         if (!$nickname) {
             // TRANS: Client error displayed trying to edit a group while not proving a nickname for the group to edit.
             $this->clientError(_('No nickname.'), 404);
-            return false;
         }
 
         $groupid = $this->trimmed('groupid');
@@ -100,7 +97,6 @@ class EditgroupAction extends GroupAction
         if (!$this->group) {
             // TRANS: Client error displayed trying to edit a non-existing group.
             $this->clientError(_('No such group.'), 404);
-            return false;
         }
 
         $cur = common_current_user();
@@ -108,7 +104,6 @@ class EditgroupAction extends GroupAction
         if (!$cur->isAdmin($this->group)) {
             // TRANS: Client error displayed trying to edit a group while not being a group admin.
             $this->clientError(_('You must be an admin to edit the group.'), 403);
-            return false;
         }
 
         return true;
@@ -157,7 +152,7 @@ class EditgroupAction extends GroupAction
     function showScripts()
     {
         parent::showScripts();
-        $this->autofocus('newnickname');
+        $this->autofocus('fullname');
     }
 
     function trySave()
@@ -170,19 +165,21 @@ class EditgroupAction extends GroupAction
 
         if (Event::handle('StartGroupSaveForm', array($this))) {
 
-            $nickname = $this->trimmed('newnickname');
-            try {
-                $nickname = Nickname::normalize($nickname, true);
-            } catch (NicknameTakenException $e) {
-                // Abort only if the nickname is occupied by _another_ group
-                if ($e->profile->id != $this->group->profile_id) {
+            // $nickname will only be set if this changenick value is true.
+            if (common_config('profile', 'changenick') == true) {
+                try {
+                    $nickname = Nickname::normalize($this->trimmed('newnickname'), true);
+                } catch (NicknameTakenException $e) {
+                    // Abort only if the nickname is occupied by _another_ group
+                    if ($e->profile->id != $this->group->profile_id) {
+                        $this->showForm($e->getMessage());
+                        return;
+                    }
+                    $nickname = Nickname::normalize($this->trimmed('newnickname')); // without in-use check this time
+                } catch (NicknameException $e) {
                     $this->showForm($e->getMessage());
                     return;
                 }
-                $nickname = Nickname::normalize($nickname); // without in-use check this time
-            } catch (NicknameException $e) {
-                $this->showForm($e->getMessage());
-                return;
             }
 
             $fullname    = $this->trimmed('fullname');
@@ -244,12 +241,16 @@ class EditgroupAction extends GroupAction
 
             $orig = clone($this->group);
 
-            $this->group->nickname    = $nickname;
+            if (common_config('profile', 'changenick') == true && $this->group->nickname !== $nickname) {
+                assert(Nickname::normalize($nickname)===$nickname);
+                common_debug("Changing group nickname from '{$profile->nickname}' to '{$nickname}'.");
+                $this->group->nickname = $nickname;
+                $this->group->mainpage = common_local_url('showgroup', array('nickname' => $this->group->nickname));
+            }
             $this->group->fullname    = $fullname;
             $this->group->homepage    = $homepage;
             $this->group->description = $description;
             $this->group->location    = $location;
-            $this->group->mainpage    = common_local_url('showgroup', array('nickname' => $nickname));
             $this->group->join_policy = $join_policy;
             $this->group->force_scope = $force_scope;
 
@@ -274,9 +275,7 @@ class EditgroupAction extends GroupAction
         }
 
         if ($this->group->nickname != $orig->nickname) {
-            common_redirect(common_local_url('editgroup',
-                                             array('nickname' => $nickname)),
-                            303);
+            common_redirect(common_local_url('editgroup', array('nickname' => $this->group->nickname)), 303);
         } else {
             // TRANS: Group edit form success message.
             $this->showForm(_('Options saved.'));