X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=inc%2Flibs%2Fadmins_functions.php;h=403c32150ce7d1f047e1f9968965bf8d41f75341;hb=3b7577d3b3e6522d8898ed1799031b6de696accc;hp=535adf41acd8ab806f7211a3930aa105da24224d;hpb=f13b0c89b6dce2dc31ef3c58f0e2ad4821d7bee8;p=mailer.git diff --git a/inc/libs/admins_functions.php b/inc/libs/admins_functions.php index 535adf41ac..403c32150c 100644 --- a/inc/libs/admins_functions.php +++ b/inc/libs/admins_functions.php @@ -39,7 +39,7 @@ if (!defined('__SECURITY')) { // Check ACL for menu combination function ADMINS_CHECK_ACL($act, $wht) { - global $cacheArray, $_CONFIG, $cacheInstance; + global $cacheArray, $cacheInstance; // If action is login or logout allow allways! $default = "allow"; if (($act == "login") || ($act == "logout")) return true; @@ -48,7 +48,7 @@ function ADMINS_CHECK_ACL($act, $wht) { $ret = false; // Get admin's ID - $aid = GET_ADMIN_ID(get_session('admin_login')); + $aid = GET_CURRENT_ADMIN_ID(); // Get admin's defult access right $default = GET_ADMIN_DEFAULT_ACL($aid); @@ -87,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; } + incrementConfigEntry('cache_hits'); break; } } @@ -183,7 +183,7 @@ function ADMINS_CHANGE_ADMIN_ACCOUNT($POST) { if (!empty($POST['pass1'][$id])) $ADD = sprintf(", password='%s'", SQL_ESCAPE($hash)); // Get admin's ID - $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 @@ -204,12 +204,12 @@ 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_ADMIN_ID(get_session('admin_login'))); + $default = GET_ADMIN_DEFAULT_ACL(GET_CURRENT_ADMIN_ID()); // Update admin account if ($default == "allow") { // Allow changing default ACL - $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_admins SET + SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_admins SET login='%s'".$ADD.", email='%s', default_acl='%s', @@ -224,7 +224,7 @@ WHERE id=%s LIMIT 1", ), __FILE__, __LINE__); } else { // Do not allow it here - $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_admins SET + SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_admins SET login='%s'".$ADD.", email='%s', la_mode='%s' @@ -254,9 +254,7 @@ WHERE id=%s LIMIT 1", } // Remove cache file - if ((EXT_IS_ACTIVE("cache")) && ($cache_update == "1")) { - if ($cacheInstance->cache_file("admins")) $cacheInstance->cache_destroy(); - } + RUN_FILTER('post_admin_edited', $_POST); } // Make admin accounts editable @@ -351,14 +349,14 @@ 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", + SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_task_system SET assigned_admin=0 WHERE assigned_admin=%s", array($id), __FILE__, __LINE__); // Remove account - $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admins WHERE id=%s LIMIT 1", - array($id), __FILE__, __LINE__); + SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admins WHERE id=%s LIMIT 1", + array($id), __FILE__, __LINE__); // Purge cache CACHE_PURGE_ADMIN_MENU($id); @@ -367,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")) $cacheInstance->cache_destroy(); - } + RUN_FILTER('post_admin_deleted', $_POST); } // List all admin accounts @@ -399,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; +} + // ?>