From ecd7c1d6b68a5f3eeef348295558dfaa14c471b2 Mon Sep 17 00:00:00 2001
From: Anika Henke <anika@selfthinker.org>
Date: Sat, 16 Apr 2011 12:21:26 +0100
Subject: [PATCH] avoid empty optgroup in acl admin

---
 lib/plugins/acl/admin.php | 64 +++++++++++++++++++++------------------
 1 file changed, 34 insertions(+), 30 deletions(-)

diff --git a/lib/plugins/acl/admin.php b/lib/plugins/acl/admin.php
index 8ca602533..c8b7b1e6e 100644
--- a/lib/plugins/acl/admin.php
+++ b/lib/plugins/acl/admin.php
@@ -800,38 +800,42 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin {
         echo '<select name="acl_t" class="edit">'.NL;
         echo '  <option value="__g__" class="aclgroup"'.$gsel.'>'.$this->getLang('acl_group').':</option>'.NL;
         echo '  <option value="__u__"  class="acluser"'.$usel.'>'.$this->getLang('acl_user').':</option>'.NL;
-        echo '  <optgroup label="&nbsp;">'.NL;
-        foreach($this->specials as $ug){
-            if($ug == $this->who){
-                $sel    = ' selected="selected"';
-                $inlist = true;
-            }else{
-                $sel = '';
-            }
-
-            if($ug{0} == '@'){
-                    echo '  <option value="'.hsc($ug).'" class="aclgroup"'.$sel.'>'.hsc($ug).'</option>'.NL;
-            }else{
-                    echo '  <option value="'.hsc($ug).'" class="acluser"'.$sel.'>'.hsc($ug).'</option>'.NL;
-            }
+        if (!empty($this->specials)) {
+	        echo '  <optgroup label="&nbsp;">'.NL;
+	        foreach($this->specials as $ug){
+	            if($ug == $this->who){
+	                $sel    = ' selected="selected"';
+	                $inlist = true;
+	            }else{
+	                $sel = '';
+	            }
+
+	            if($ug{0} == '@'){
+	                    echo '  <option value="'.hsc($ug).'" class="aclgroup"'.$sel.'>'.hsc($ug).'</option>'.NL;
+	            }else{
+	                    echo '  <option value="'.hsc($ug).'" class="acluser"'.$sel.'>'.hsc($ug).'</option>'.NL;
+	            }
+	        }
+	        echo '  </optgroup>'.NL;
         }
-        echo '  </optgroup>'.NL;
-        echo '  <optgroup label="&nbsp;">'.NL;
-        foreach($this->usersgroups as $ug){
-            if($ug == $this->who){
-                $sel    = ' selected="selected"';
-                $inlist = true;
-            }else{
-                $sel = '';
-            }
-
-            if($ug{0} == '@'){
-                    echo '  <option value="'.hsc($ug).'" class="aclgroup"'.$sel.'>'.hsc($ug).'</option>'.NL;
-            }else{
-                    echo '  <option value="'.hsc($ug).'" class="acluser"'.$sel.'>'.hsc($ug).'</option>'.NL;
-            }
+        if (!empty($this->usersgroups)) {
+	        echo '  <optgroup label="&nbsp;">'.NL;
+	        foreach($this->usersgroups as $ug){
+	            if($ug == $this->who){
+	                $sel    = ' selected="selected"';
+	                $inlist = true;
+	            }else{
+	                $sel = '';
+	            }
+
+	            if($ug{0} == '@'){
+	                    echo '  <option value="'.hsc($ug).'" class="aclgroup"'.$sel.'>'.hsc($ug).'</option>'.NL;
+	            }else{
+	                    echo '  <option value="'.hsc($ug).'" class="acluser"'.$sel.'>'.hsc($ug).'</option>'.NL;
+	            }
+	        }
+	        echo '  </optgroup>'.NL;
         }
-        echo '  </optgroup>'.NL;
         echo '</select>'.NL;
         return $inlist;
     }
-- 
GitLab