X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-core%2Finclude%2Fclass_pluglist.inc;h=114ab5ddd21fe3cbf8b58558f1fcbee4e1c429ee;hb=888516587f0cda06601ab943d2851bfaf5b23578;hp=54b5c67644a0df08132bb5b74ba0615f1a5f1ef0;hpb=819d8bd355f1863298f90c92178a5fccc30015d3;p=gosa.git diff --git a/gosa-core/include/class_pluglist.inc b/gosa-core/include/class_pluglist.inc index 54b5c6764..114ab5ddd 100644 --- a/gosa-core/include/class_pluglist.inc +++ b/gosa-core/include/class_pluglist.inc @@ -31,6 +31,7 @@ class pluglist { var $current= ""; var $info= array(); var $headlines = array(); + var $allowed_plugins = array(); function pluglist(&$config, &$ui) { @@ -113,7 +114,7 @@ class pluglist { /* No self acls. Check if we have any acls for the given ACL type */ - $deps = $this->ui->get_module_departments($acl_to_check); + $deps = $this->ui->get_module_departments($acl_to_check,TRUE); if(count($deps)) return TRUE; } } @@ -141,6 +142,19 @@ class pluglist { function gen_menu() { + /* Check if class_location.inc has changed, this is the case + if we have installed or removed plugins. + */ + if(!session::is_set("class_location.inc:timestamp")){ + $tmp = stat("../include/class_location.inc"); + session::set("class_location.inc:timestamp",$tmp['mtime']); + }else{ + $tmp = stat("../include/class_location.inc"); + if($tmp['mtime'] != session::get("class_location.inc:timestamp")){ + $this->menu = ""; + } + } + if ($this->menu == ""){ $first= TRUE; $cfg= $this->config->data['MENU']; @@ -186,6 +200,8 @@ class pluglist { if ($this->check_access($info['ACL'])){ + $this->allowed_plugins[$index] = $index; + $entries= $entries."

"; if(session::get('js')){ @@ -251,6 +267,19 @@ class pluglist { { global $class_mapping; + /* Check if class_location.inc has changed, this is the case + if we have installed or removed plugins. + */ + if(!session::is_set("class_location.inc:timestamp")){ + $tmp = stat("../include/class_location.inc"); + session::set("class_location.inc:timestamp",$tmp['mtime']); + }else{ + $tmp = stat("../include/class_location.inc"); + if($tmp['mtime'] != session::get("class_location.inc:timestamp")){ + $this->iconmenu = ""; + } + } + if ($this->iconmenu == ""){ $cfg= $this->config->data['MENU']; @@ -377,6 +406,15 @@ class pluglist { return (0); } + + /*! \brief This function checks if we are allowed to view the plugin with the given id + @param $plug_id Integer The ID of the plugin. + @return Boolean TRUE if we are allowed to view the plugin else FASLE + */ + function plugin_access_allowed($plug_id) + { + return(isset($this->allowed_plugins[$plug_id])); + } } // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: ?>