Hide Menu options if not authorized
[fa-stable.git] / themes / aqua / renderer.php
index 10c3c95641d9e7e09f7aad57d26b94b2d753d01a..72e200cb4bf5481da2a68bf8d75adddcbbc97a23 100644 (file)
                                echo "<div class=tabs>";
                                foreach($applications as $app)
                                {
-                                       $acc = access_string($app->name);
-                                       echo "<a class='".($sel_app == $app->id ? 'selected' : 'menu_tab')
-                                               ."' href='$local_path_to_root/index.php?application=".$app->id
-                                               ."'$acc[1]>" .$acc[0] . "</a>";
+                    if ($this->check_application_access($app))
+                    {
+                                               $acc = access_string($app->name);
+                                               echo "<a class='".($sel_app == $app->id ? 'selected' : 'menu_tab')
+                                                       ."' href='$local_path_to_root/index.php?application=".$app->id
+                                                       ."'$acc[1]>" .$acc[0] . "</a>";
+                                       }               
                                }
                                echo "</div>";
 
                        global $path_to_root;
                        
                        $selected_app = $waapp->get_selected_application();
+                       if (!$this->check_application_access($selected_app))
+                               return;
 
                        foreach ($selected_app->modules as $module)
                        {
+                       if (!$this->check_module_access($module))
+                               continue;
                                // image
                                echo "<tr>";
                                // values
                                        {
                                                        echo $img.menu_link($appfunction->link, $appfunction->label)."<br>\n";
                                        }
-                                       else 
+                                       elseif (!$this->hide_inaccessible_menu_items()) 
                                        {
                                                        echo $img.'<span class="inactive">'
                                                                .access_string($appfunction->label, true)
                                                {
                                                                echo $img.menu_link($appfunction->link, $appfunction->label)."<br>\n";
                                                }
-                                               else 
+                                               elseif (!$this->hide_inaccessible_menu_items()) 
                                                {
                                                                echo $img.'<span class="inactive">'
                                                                        .access_string($appfunction->label, true)
 
                        echo "</table>";
                }
+
+        function check_application_access($waapp)
+        {
+            if (!$this->hide_inaccessible_menu_items())
+            {
+                return true;
+            }
+            
+            foreach ($waapp->modules as $module)
+            {
+                if ($this->check_module_access($module))
+                {
+                    return true;
+                }
+            }
+            
+            return false;
+                    
+        }
+        
+        function check_module_access($module)
+        {
+            
+            if (!$this->hide_inaccessible_menu_items())
+            {
+                return true;
+            }
+            
+            if (sizeof($module->lappfunctions) > 0)
+            {
+                foreach ($module->lappfunctions as $appfunction)
+                {
+                    if ($appfunction->label != "" && $_SESSION["wa_current_user"]->can_access_page($appfunction->access))
+                    {
+                        return true;
+                    }
+                }
+            }
+            
+            if (sizeof($module->rappfunctions) > 0)
+            {
+                foreach ($module->rappfunctions as $appfunction)
+                {
+                    if ($appfunction->label != "" && $_SESSION["wa_current_user"]->can_access_page($appfunction->access))
+                    {
+                        return true;
+                    }
+                }
+            }
+            
+            return false;
+            
+        }
+        
+        function hide_inaccessible_menu_items()
+        {
+            global $hide_inaccessible_menu_items;
+            
+            if (!isset($hide_inaccessible_menu_items) || $hide_inaccessible_menu_items == 0)
+            {
+                return false;
+            }
+            
+            else
+            {
+                return true;
+            }
+        }
        }
 
 ?>
\ No newline at end of file