From 289f0775884cc7d945834356d9ccd97abde9a772 Mon Sep 17 00:00:00 2001 From: devjin Date: Thu, 13 Oct 2011 02:04:38 +0000 Subject: [PATCH] fixed check module grant git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@9624 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/module/ModuleHandler.class.php | 1 - classes/module/ModuleObject.class.php | 7 +++---- classes/validator/Validator.class.php | 7 ++++++- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/classes/module/ModuleHandler.class.php b/classes/module/ModuleHandler.class.php index a17f7d563..9e13f7c40 100644 --- a/classes/module/ModuleHandler.class.php +++ b/classes/module/ModuleHandler.class.php @@ -516,7 +516,6 @@ $type = Mobile::isFromMobilePhone() ? 'mobile' : 'view'; $oMessageObject = &ModuleHandler::getModuleInstance('message',$type); $oMessageObject->setError(-1); - debugPrint($this->error); $oMessageObject->setMessage($this->error); $oMessageObject->dispMessage(); diff --git a/classes/module/ModuleObject.class.php b/classes/module/ModuleObject.class.php index b01e0f151..68409c7d0 100644 --- a/classes/module/ModuleObject.class.php +++ b/classes/module/ModuleObject.class.php @@ -135,11 +135,10 @@ $grant = $oModuleModel->getGrant($request_module, $logged_info); } } else { + $grant = $oModuleModel->getGrant($module_info, $logged_info, $xml_info); // have at least access grant - if ($module_info->module == 'admin' || $this->module == $module_info->module) - $grant = $oModuleModel->getGrant($module_info, $logged_info, $xml_info); - else - $grant->access = 1; + if( substr_count($this->act, 'Member') || substr_count($this->act, 'Communication')) + $grant->access = 1; } // display no permission if the current module doesn't have an access privilege //if(!$grant->access) return $this->stop("msg_not_permitted"); diff --git a/classes/validator/Validator.class.php b/classes/validator/Validator.class.php index b1dfb2ae5..aa07afa2e 100644 --- a/classes/validator/Validator.class.php +++ b/classes/validator/Validator.class.php @@ -159,6 +159,9 @@ class Validator $names = array(); if($key{0} == '^') { $names = preg_grep('/^'.preg_quote(substr($key,1)).'/', $field_names); + }elseif(substr($key,-2) == '[]'){ + $filters[substr($key,0,-2)] = $filter; + unset($filters[$key]); } if(!count($names)) continue; @@ -171,11 +174,13 @@ class Validator } foreach($filters as $key=>$filter) { - $fname = $key; + $fname = preg_replace('/\[\]$/', '', $key); $exists = array_key_exists($key, $fields); $filter = array_merge($filter_default, $filter); $value = $exists ? $fields[$fname] : null; + if(is_array($value)) $value = implode('', $value); + // conditional statement foreach($filter['if'] as $cond) { if(!isset($cond['test']) || !isset($cond['attr'])) continue;