* $Date:: $ *
* $Tag:: 0.2.1-FINAL $ *
* $Author:: $ *
- * Needs to be in all Files and every File needs "svn propset *
- * svn:keywords Date Revision" (autoprobset!) at least!!!!!! *
* -------------------------------------------------------------------- *
* Copyright (c) 2003 - 2009 by Roland Haeder *
- * Copyright (c) 2009, 2010 by Mailer Developer Team *
+ * Copyright (c) 2009 - 2011 by Mailer Developer Team *
* For more information visit: http://www.mxchange.org *
* *
* This program is free software; you can redistribute it and/or modify *
// Rewrite cookie when it's own account
if ($adminId == $id) {
// Set timeout cookie
- setSession('admin_last', time());
+ setAdminLast(time());
- if ($adminId != getSession('admin_id')) {
+ if ($adminId != getCurrentAdminId()) {
// Update login cookie
- setSession('admin_id', $adminId);
+ setAdminId($adminId);
// Update password cookie as well?
- if (!empty($add)) setSession('admin_md5', $hash);
- } elseif (generateHash($postData['pass1'][$id], $salt) != getSession('admin_md5')) {
+ if (!empty($add)) {
+ setAdminMd5($hash);
+ } // END - if
+ } elseif (generateHash($postData['pass1'][$id], $salt) != getAdminMd5()) {
// Update password cookie
- setSession('admin_md5', $hash);
+ setAdminMd5($hash);
}
} // END - if
$message = '{--ADMIN_ACCOUNT_SAVED--}';
} else {
// Passwords did not match
- $message = '{--ADMINS_ERROR_PASS_MISMATCH--}';
+ $message = '{--ADMIN_ADMINS_ERROR_PASS_MISMATCH--}';
}
} else {
// Update whole array
// Skip login/id entry
if (in_array($entry, array('login', 'id'))) continue;
- // Do we have a non-string (e.g. number, NOW() or back-tick at the beginning?
- if ((bigintval($value[$id], true, false) === $value[$id]) || ($value[$id] == 'NOW()') || (substr($value[$id], 0, 1) == '`')) {
+ // Do we have a non-string (e.g. number, NULL, NOW() or back-tick at the beginning?
+ if (is_null($value[$id])) {
+ // NULL detected
+ $SQL .= '`' . $entry . '`=NULL, ';
+ } elseif ((bigintval($value[$id], true, false) === $value[$id]) || ($value[$id] == 'NOW()') || (substr($value[$id], 0, 1) == '`')) {
// No need for ticks (')
- $SQL .= '`' . $entry . '`=' . $value[$id] . ',';
+ $SQL .= '`' . $entry . '`=' . $value[$id] . ', ';
} else {
// Strings need ticks (') around them
- $SQL .= '`' . $entry . "`='" . SQL_ESCAPE($value[$id]) . "',";
+ $SQL .= '`' . $entry . "`='" . SQL_ESCAPE($value[$id]) . "', ";
}
} // END - foreach
- // Remove last tick and finish query
- $SQL = substr($SQL, 0, -1) . ' WHERE `id`=%s LIMIT 1';
+ // Remove last 2 chars and finish query
+ $SQL = substr($SQL, 0, -2) . ' WHERE `id`=%s LIMIT 1';
// Run it
SQL_QUERY_ESC($SQL, array(bigintval($id)), __FUNCTION__, __LINE__);
// Display message
if (!empty($message)) {
- loadTemplate('admin_settings_saved', false, $message);
+ displayMessage($message);
} // END - if
// Remove cache file
// Shall we allow changing default ACL?
if ($currMode == 'allow') {
// Allow chaning it
- $content['mode'] = generateOptionList('/ARRAY/', array('allow', 'deny'), array('{--ADMINS_ALLOW_MODE--}', '{--ADMINS_DENY_MODE--}'), $content['mode']);
+ $content['mode'] = generateOptionList('/ARRAY/', array('allow', 'deny'), array('{--ADMIN_ADMINS_MODE_ALLOW--}', '{--ADMIN_ADMINS_MODE_DENY--}'), $content['mode']);
} else {
// Don't allow it
$content['mode'] = ' ';
}
- $content['la_mode'] = generateOptionList('/ARRAY/', array('global', 'OLD', 'NEW'), array('{--ADMINS_GLOBAL_LA_SETTING--}', '{--ADMINS_OLD_LA_SETTING--}', '{--ADMINS_NEW_LA_SETTING--}'), $content['la_mode']);
+ $content['la_mode'] = generateOptionList('/ARRAY/', array('global', 'OLD', 'NEW'), array('{--ADMIN_ADMINS_LA_MODE_GLOBAL--}', '{--ADMIN_ADMINS_LA_MODE_OLD--}', '{--ADMINS_NEW_LA_SETTING--}'), $content['la_mode']);
// Load row template and switch color
$OUT .= loadTemplate('admin_edit_admins_row', true, $content);
if (SQL_NUMROWS($result) == 1) {
// Entry found, so load data
$content = SQL_FETCHARRAY($result);
- $content['mode'] = '{--ADMINS_' . strtoupper($content['mode']) . '_MODE--}';
- $content['la_mode'] = '{--ADMINS_' . strtoupper($content['la_mode']) . '_LA_SETTING--}';
+ $content['mode'] = '{--ADMIN_ADMINS_MODE_' . strtoupper($content['mode']) . '--}';
+ $content['la_mode'] = '{--ADMIN_ADMINS_LA_MODE_' . strtoupper($content['la_mode']) . '--}';
// Prepare some more data
$content['id'] = $id;
loadTemplate('admin_delete_admins', false, $OUT);
} else {
// Cannot delete last account!
- loadTemplate('admin_settings_saved', false, '{--ADMIN_ADMINS_CANNOT_DELETE_LAST--}');
+ displayMessage('{--ADMIN_ADMINS_CANNOT_DELETE_LAST--}');
}
}
// Delete only when it's not your own account!
if (($del == 1) && (getCurrentAdminId() != $id)) {
// Rewrite his tasks to all admins
- 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`=NULL WHERE `assigned_admin`=%s",
array($id), __FUNCTION__, __LINE__);
// Remove account
} // END - if
// By default no admin is found
- $data['login_failures'] = '-1';
+ $data['login_failures'] = -1;
// Check cache
if (isset($GLOBALS['cache_array']['admin']['login_failures'][$adminId])) {
} // END - if
// By default no admin is found
- $data['last_failure'] = '-1';
+ $data['last_failure'] = -1;
// Check cache
if (isset($GLOBALS['cache_array']['admin']['last_failure'][$adminId])) {
return $data['last_failure'];
}
-//-----------------------------------------------------------------------------
-// Filter Functions
-//-----------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+// Wrapper functions
+// ---------------------------------------------------------------------------
-// Filter for adding extra data to the query
-function FILTER_ADD_EXTRA_SQL_DATA ($add = '') {
- // Is the admins extension updated? (should be!)
- if (isExtensionInstalledAndNewer('admins', '0.3.0')) $add .= ', `default_acl` AS def_acl';
- if (isExtensionInstalledAndNewer('admins', '0.6.7')) $add .= ', `la_mode`';
- if (isExtensionInstalledAndNewer('admins', '0.7.2')) $add .= ', `login_failures`, UNIX_TIMESTAMP(`last_failure`) AS last_failure';
- if (isExtensionInstalledAndNewer('admins', '0.7.3')) $add .= ', `expert_settings`, `expert_warning`';
-
- // Return it
- return $add;
-}
-
-// Reset the login failures
-function FILTER_RESET_ADMINS_LOGIN_FAILURES ($data) {
- // Store it in session
- setSession('mailer_admin_failures' , getAdminLoginFailures($data['id']));
- setSession('mailer_admin_last_failure', getAdminLastFailure($data['id']));
-
- // Prepare update data
- $postData['login'][getCurrentAdminId()] = $data['login'];
- $postData['login_failures'][getCurrentAdminId()] = '0';
- $postData['last_failure'][getCurrentAdminId()] = '0000-00-00 00:00:00';
-
- // Change it in the admin
- adminsChangeAdminAccount($postData);
-
- // Always make sure the cache is destroyed
- rebuildCache('admin');
-
- // Return the data for further processing
- return $data;
-}
-
-// Count the login failure
-function FILTER_COUNT_ADMINS_LOGIN_FAILURE ($data) {
- // Prepare update data
- $postData['login'][getCurrentAdminId()] = $data['login'];
- $postData['login_failures'][getCurrentAdminId()] = '`login_failures`+1';
- $postData['last_failure'][getCurrentAdminId()] = 'NOW()';
-
- // Change it in the admin
- adminsChangeAdminAccount($postData);
-
- // Always make sure the cache is destroyed
- rebuildCache('admin');
-
- // Return the data for further processing
- return $data;
-}
-
-// Rehashes the given plain admin password and stores it the database
-function FILTER_REHASH_ADMINS_PASSWORD ($data) {
- // Generate new hash
- $newHash = generateHash($data['plain_pass']);
-
- // Prepare update data
- $postData['login'][getCurrentAdminId()] = $data['login'];
- $postData['password'][getCurrentAdminId()] = $newHash;
-
- // Change it in the admin
- adminsChangeAdminAccount($postData);
-
- // Update cookie/session and data array
- setSession('admin_md5', encodeHashForCookie($newHash));
- $data['pass_hash'] = $newHash;
-
- // Always make sure the cache is destroyed
- rebuildCache('admin');
-
- // Return the data for further processing
- return $data;
+// Wrapper function to check wether expert setting warning is enabled
+function isAdminsExpertWarningEnabled () {
+ return (getAminsExpertWarning() == 'Y');
}
// [EOF]