From 76c65fd3be96c545da85d9b67e7674e765e92e04 Mon Sep 17 00:00:00 2001
From: Andreas Gohr <andi@splitbrain.org>
Date: Sat, 25 Jul 2009 14:42:41 +0200
Subject: [PATCH] correctly handle disabled plugins in admin menu FS#1715

Ignore-this: b9710cae350620157381653fcf82f150

darcs-hash:20090725124241-7ad00-0d6a20412e09f8ee89f5ade512355faac5d8a245.gz
---
 inc/html.php | 42 ++++++++++++++++++++++++++----------------
 1 file changed, 26 insertions(+), 16 deletions(-)

diff --git a/inc/html.php b/inc/html.php
index 72af8f18a..b0cffe887 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -1366,26 +1366,32 @@ function html_admin(){
     if($INFO['isadmin']){
         ptln('<ul class="admin_tasks">');
 
-        if($auth && $auth->canDo('getUsers')){
+        if($menu['usermanager'] && $auth && $auth->canDo('getUsers')){
             ptln('  <li class="admin_usermanager"><div class="li">'.
                     '<a href="'.wl($ID, array('do' => 'admin','page' => 'usermanager')).'">'.
                     $menu['usermanager']['prompt'].'</a></div></li>');
         }
         unset($menu['usermanager']);
 
-        ptln('  <li class="admin_acl"><div class="li">'.
-                '<a href="'.wl($ID, array('do' => 'admin','page' => 'acl')).'">'.
-                $menu['acl']['prompt'].'</a></div></li>');
+        if($menu['acl']){
+            ptln('  <li class="admin_acl"><div class="li">'.
+                    '<a href="'.wl($ID, array('do' => 'admin','page' => 'acl')).'">'.
+                    $menu['acl']['prompt'].'</a></div></li>');
+        }
         unset($menu['acl']);
 
-        ptln('  <li class="admin_plugin"><div class="li">'.
-                '<a href="'.wl($ID, array('do' => 'admin','page' => 'plugin')).'">'.
-                $menu['plugin']['prompt'].'</a></div></li>');
+        if($menu['plugin']){
+            ptln('  <li class="admin_plugin"><div class="li">'.
+                    '<a href="'.wl($ID, array('do' => 'admin','page' => 'plugin')).'">'.
+                    $menu['plugin']['prompt'].'</a></div></li>');
+        }
         unset($menu['plugin']);
 
-        ptln('  <li class="admin_config"><div class="li">'.
-                '<a href="'.wl($ID, array('do' => 'admin','page' => 'config')).'">'.
-                $menu['config']['prompt'].'</a></div></li>');
+        if($menu['config']){
+            ptln('  <li class="admin_config"><div class="li">'.
+                    '<a href="'.wl($ID, array('do' => 'admin','page' => 'config')).'">'.
+                    $menu['config']['prompt'].'</a></div></li>');
+        }
         unset($menu['config']);
     }
     ptln('</ul>');
@@ -1393,14 +1399,18 @@ function html_admin(){
     // Manager Tasks
     ptln('<ul class="admin_tasks">');
 
-    ptln('  <li class="admin_revert"><div class="li">'.
-            '<a href="'.wl($ID, array('do' => 'admin','page' => 'revert')).'">'.
-            $menu['revert']['prompt'].'</a></div></li>');
+    if($menu['revert']){
+        ptln('  <li class="admin_revert"><div class="li">'.
+                '<a href="'.wl($ID, array('do' => 'admin','page' => 'revert')).'">'.
+                $menu['revert']['prompt'].'</a></div></li>');
+    }
     unset($menu['revert']);
 
-    ptln('  <li class="admin_popularity"><div class="li">'.
-            '<a href="'.wl($ID, array('do' => 'admin','page' => 'popularity')).'">'.
-            $menu['popularity']['prompt'].'</a></div></li>');
+    if($menu['popularity']){
+        ptln('  <li class="admin_popularity"><div class="li">'.
+                '<a href="'.wl($ID, array('do' => 'admin','page' => 'popularity')).'">'.
+                $menu['popularity']['prompt'].'</a></div></li>');
+    }
     unset($menu['popularity']);
 
     ptln('</ul>');
-- 
GitLab