From bb902775e3ba4ef820a764fc5f3c725a8f03e45c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Sun, 26 Sep 2010 01:26:41 +0000 Subject: [PATCH] Encapsulated access on many ['cache_array']['modules']['foo'] entries --- inc/module-functions.php | 64 +++++++++++++++++++++++++++++++--------- 1 file changed, 50 insertions(+), 14 deletions(-) diff --git a/inc/module-functions.php b/inc/module-functions.php index 58ae31fc54..445c8505d4 100644 --- a/inc/module-functions.php +++ b/inc/module-functions.php @@ -165,6 +165,42 @@ function isModuleRegistered ($module) { return $found; } +// Checks wether the given module is locked by just checking the cache +function isModuleLocked ($module) { + // Determine if there a cache entry and is it set + $return = ((isset($GLOBALS['cache_array']['modules']['locked'][$module])) && ($GLOBALS['cache_array']['modules']['locked'][$module] == 'Y')); + + // Return determined value + return $return; +} + +// Checks wether the given module is hidden by just checking the cache +function isModuleHidden ($module) { + // Determine if there a cache entry and is it set + $return = ((isset($GLOBALS['cache_array']['modules']['hidden'][$module])) && ($GLOBALS['cache_array']['modules']['hidden'][$module] == 'Y')); + + // Return determined value + return $return; +} + +// Checks wether the given module is mem_only by just checking the cache +function isModuleMemberOnly ($module) { + // Determine if there a cache entry and is it set + $return = ((isset($GLOBALS['cache_array']['modules']['mem_only'][$module])) && ($GLOBALS['cache_array']['modules']['mem_only'][$module] == 'Y')); + + // Return determined value + return $return; +} + +// Checks wether the given module is admin_only by just checking the cache +function isModuleAdminOnly ($module) { + // Determine if there a cache entry and is it set + $return = ((isset($GLOBALS['cache_array']['modules']['admin_only'][$module])) && ($GLOBALS['cache_array']['modules']['admin_only'][$module] == 'Y')); + + // Return determined value + return $return; +} + // Check validity of a given module name (no file extension) function checkModulePermissions ($module = '') { // Is it empty (default), then take the current one @@ -215,26 +251,26 @@ function checkModulePermissions ($module = '') { // Check returned values against current access permissions // // Admin access ----- Guest access ----- --- Guest or member? --- - if ((isAdmin()) || (($GLOBALS['cache_array']['modules']['locked'][$module_chk] != 'Y') && ($GLOBALS['cache_array']['modules']['admin_only'][$module_chk] != 'Y') && (($GLOBALS['cache_array']['modules']['mem_only'][$module_chk] != 'Y') || (isMember())))) { + if ((isAdmin()) || ((!isModuleLocked($module_chk)) && (!isModuleAdminOnly($module_chk)) && ((!isModuleMemberOnly($module_chk)) || (isMember())))) { // If you are admin you are welcome for everything! setModuleStatus($module_chk, 'done'); - } elseif ($GLOBALS['cache_array']['modules']['locked'][$module_chk] == 'Y') { + } elseif (isModuleLocked($module_chk)) { // Module is locked setModuleStatus($module_chk, 'locked'); - } elseif (($GLOBALS['cache_array']['modules']['mem_only'][$module_chk] == 'Y') && (!isMember())) { + } elseif ((isModuleMemberOnly($module_chk)) && (!isMember())) { // You have to login first! setModuleStatus($module_chk, 'mem_only'); - } elseif (($GLOBALS['cache_array']['modules']['admin_only'][$module_chk] == 'Y') && (!isAdmin())) { + } elseif ((isModuleAdminOnly($module_chk)) && (!isAdmin())) { // Only the Admin is allowed to enter this module! setModuleStatus($module_chk, 'admin_only'); } else { // @TODO Nothing helped??? - logDebugMessage(__FUNCTION__, __LINE__, sprintf("ret=%s,locked=%s,hidden=%s,mem=%s,admin=%s", + logDebugMessage(__FUNCTION__, __LINE__, sprintf("ret=%s,locked=%d,hidden=%d,mem=%d,admin=%d", getModuleStatus($module_chk), - $GLOBALS['cache_array']['modules']['locked'][$module_chk], - $GLOBALS['cache_array']['modules']['hidden'][$module_chk], - $GLOBALS['cache_array']['modules']['mem_only'][$module_chk], - $GLOBALS['cache_array']['modules']['admin_only'][$module_chk] + intval(isModuleLocked($module_chk)), + intval(isModuleHidden($module_chk)), + intval(isModuleMemberOnly($module_chk)), + intval(isModuleAdminOnly($module_chk)) )); } } // END - if @@ -286,13 +322,13 @@ VALUES rebuildCache('modules', 'modules'); } elseif ($found === false) { // Problem with module detected - logDebugMessage(__FUNCTION__, __LINE__, sprintf("Problem in module %s detected. ret=%s, locked=%s, hidden=%s, mem=%s, admin=%s, output_mode=%s", + logDebugMessage(__FUNCTION__, __LINE__, sprintf("Problem in module %s detected. ret=%s,locked=%d,hidden=%d,mem=%d,admin=%d,output_mode=%s", $module_chk, getModuleStatus($module_chk), - $GLOBALS['cache_array']['modules']['locked'][$module_chk], - $GLOBALS['cache_array']['modules']['hidden'][$module_chk], - $GLOBALS['cache_array']['modules']['mem_only'][$module_chk], - $GLOBALS['cache_array']['modules']['admin_only'][$module_chk], + intval(isModuleLocked($module_chk)), + intval(isModuleHidden($module_chk)), + intval(isModuleMemberOnly($module_chk)), + intval(isModuleAdminOnly($module_chk)), getScriptOutputMode() )); } -- 2.39.2