X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Flibs%2Fadmins_functions.php;h=05e121443d6f47f43a5b197b06bc1e3da185005e;hb=3e67aa21428cb9bc5b8d7552d2dd0770fc46dfb3;hp=550b8a69bc539399caf339908aafe5b8a0092070;hpb=427719103e37ed2e27803b833dc5db5841e4dec9;p=mailer.git diff --git a/inc/libs/admins_functions.php b/inc/libs/admins_functions.php index 550b8a69bc..05e121443d 100644 --- a/inc/libs/admins_functions.php +++ b/inc/libs/admins_functions.php @@ -47,20 +47,12 @@ function ADMINS_CHECK_ACL($act, $wht) { // Default is deny $ret = false; + // Get admin's ID + $aid = GET_CURRENT_ADMIN_ID(); + // Get admin's defult access right - if (!empty($cacheArray['admins']['def_acl'][get_session('admin_login')])) { - // Load from cache - $default = $cacheArray['admins']['def_acl'][get_session('admin_login')]; - - // Count cache hits - if (isset($_CONFIG['cache_hits'])) { $_CONFIG['cache_hits']++; } else { $_CONFIG['cache_hits'] = 1; } - } elseif (!is_object($cacheInstance)) { - // Load from database - $default = GET_ADMIN_DEFAULT_ACL(get_session('admin_login')); - } + $default = GET_ADMIN_DEFAULT_ACL($aid); - // Get admin's ID - $aid = GET_ADMIN_ID(get_session('admin_login')); if (!empty($wht)) { // Check for parent menu: @@ -95,7 +87,7 @@ function ADMINS_CHECK_ACL($act, $wht) { } if ($lines == 1) { // Count cache hits - if (isset($_CONFIG['cache_hits'])) { $_CONFIG['cache_hits']++; } else { $_CONFIG['cache_hits'] = 1; } + if (getConfig('cache_hits') > 0) { $_CONFIG['cache_hits']++; } else { $_CONFIG['cache_hits'] = 1; } break; } } @@ -191,8 +183,8 @@ function ADMINS_CHANGE_ADMIN_ACCOUNT($POST) { if (!empty($POST['pass1'][$id])) $ADD = sprintf(", password='%s'", SQL_ESCAPE($hash)); // Get admin's ID - $salt = substr(GET_ADMIN_HASH(get_session('admin_login')), 0, -40); - $aid = GET_ADMIN_ID(get_session('admin_login')); + $aid = GET_CURRENT_ADMIN_ID(); + $salt = substr(GET_ADMIN_HASH($aid), 0, -40); // Rewrite cookie when it's own account if ($aid == $id) { @@ -212,7 +204,7 @@ function ADMINS_CHANGE_ADMIN_ACCOUNT($POST) { } // END - if // Get default ACL from admin to check if we can allow him to change the default ACL - $default = GET_ADMIN_DEFAULT_ACL(get_session('admin_login')); + $default = GET_ADMIN_DEFAULT_ACL(GET_CURRENT_ADMIN_ID()); // Update admin account if ($default == "allow") { @@ -262,9 +254,7 @@ WHERE id=%s LIMIT 1", } // Remove cache file - if ((EXT_IS_ACTIVE("cache")) && ($cache_update == "1")) { - if ($cacheInstance->cache_file("admins", true)) $cacheInstance->cache_destroy(); - } + RUN_FILTER('post_admin_edited', $_POST); } // Make admin accounts editable @@ -359,7 +349,7 @@ function ADMINS_REMOVE_ADMIN_ACCOUNTS ($POST) { $id = bigintval($id); // Delete only when it's not your own account! - if (($del == 1) && (GET_ADMIN_ID(get_session('admin_login')) != $id)) { + if (($del == 1) && (GET_CURRENT_ADMIN_ID() != $id)) { // Rewrite his tasks to all admins $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_task_system SET assigned_admin=0 WHERE assigned_admin=%s", array($id), __FILE__, __LINE__); @@ -375,9 +365,7 @@ function ADMINS_REMOVE_ADMIN_ACCOUNTS ($POST) { } // Remove cache if cache system is activated - if ((EXT_IS_ACTIVE("cache")) && ($cache_update == "1")) { - if ($cacheInstance->cache_file("admins", true)) $cacheInstance->cache_destroy(); - } + RUN_FILTER('post_admin_deleted', $_POST); } // List all admin accounts @@ -407,5 +395,19 @@ function ADMINS_LIST_ADMIN_ACCOUNTS() { LOAD_TEMPLATE("admin_list_admins"); } +// Filter for adding extra data to the query +function FILTER_ADD_EXTRA_SQL_DATA () { + // Init extra data + $ADD = ""; + + // Is the admins extension updated? (should be!) + if (GET_EXT_VERSION("admins") >= "0.3") $ADD .= ", default_acl AS def_acl"; + if (GET_EXT_VERSION("admins") >= "0.6.7") $ADD .= ", la_mode"; + if (GET_EXT_VERSION("admins") >= "0.7.0") $ADD .= ", login_failtures, UNIX_TIMESTAMP(last_failture) AS last_failture"; + + // Return it + return $ADD; +} + // ?>