diff --git a/classes/module/ModuleHandler.class.php b/classes/module/ModuleHandler.class.php index 75cf81bc1..40fe7039b 100644 --- a/classes/module/ModuleHandler.class.php +++ b/classes/module/ModuleHandler.class.php @@ -577,7 +577,7 @@ class ModuleHandler extends Handler if($kind == 'admin') { $grant = $oModuleModel->getGrant($this->module_info, $logged_info); - if(!$grant->is_admin && !$grant->manager) + if(!$grant->manager) { $this->_setInputErrorToContext(); $this->error = 'msg_is_not_manager'; @@ -587,6 +587,19 @@ class ModuleHandler extends Handler $oMessageObject->dispMessage(); return $oMessageObject; } + else + { + if(!$grant->is_admin && $this->module != $this->orig_module->module && $xml_info->permission->{$this->act} != 'manager') + { + $this->_setInputErrorToContext(); + $this->error = 'msg_is_not_administrator'; + $oMessageObject = ModuleHandler::getModuleInstance('message', 'view'); + $oMessageObject->setError(-1); + $oMessageObject->setMessage($this->error); + $oMessageObject->dispMessage(); + return $oMessageObject; + } + } } } else if($xml_info->default_index_act && method_exists($oModule, $xml_info->default_index_act)) diff --git a/modules/module/module.model.php b/modules/module/module.model.php index e958b0bd3..cf9e509c7 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -2010,7 +2010,7 @@ class moduleModel extends module $args->module_srl = $module_srl; $args->member_srl = $member_info->member_srl; $output = executeQuery('module.getModuleAdmin',$args); - if($output->data && $output->data->member_srl == $member_info->member_srl) $grant->manager = $grant->is_admin = true; + if($output->data && $output->data->member_srl == $member_info->member_srl) $grant->manager = true; } // If not an administrator, get information from the DB and grant manager privilege. if(!$grant->manager)