}
// Change a lot admin account
-function adminsChangeAdminAccount ($postData) {
+function adminsChangeAdminAccount ($postData, $element = '') {
// Begin the update
$cache_update = '0';
foreach ($postData['login'] as $id => $login) {
$id = bigintval($id);
// When both passwords match update admin account
- if ($postData['pass1'][$id] == $postData['pass2'][$id]) {
+ if ((!empty($element)) && (isset($postData[$element]))) {
+ // Save this setting
+ SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_admins` SET `%s`='%s' WHERE `id`=%s LIMIT 1",
+ array($element, $postData[$element][$id], $id), __FILE__, __LINE__);
+
+ // Admin account saved
+ $message = getMessage('ADMIN_ACCOUNT_SAVED');
+ } elseif ($postData['pass1'][$id] == $postData['pass2'][$id]) {
// Save only when both passwords are the same (also when they are empty)
$add = ''; $cache_update = 1;
// Get admin's id
$adminId = getCurrentAdminId();
- $salt = substr(getAdminHash($adminId), 0, -40);
+ $salt = substr(getAdminHash(getAdminLogin($adminId)), 0, -40);
// Rewrite cookie when it's own account
if ($adminId == $id) {
// Passwords did not match
$message = getMessage('ADMINS_ERROR_PASS_MISMATCH');
}
+ } // END - foreach
- // Display message
- if (!empty($message)) {
- loadTemplate('admin_settings_saved', false, $message);
- }
- }
+ // Display message
+ if (!empty($message)) {
+ loadTemplate('admin_settings_saved', false, $message);
+ } // END - if
// Remove cache file
runFilterChain('post_admin_edited', postRequestArray());
// Get the admin's data
$result = SQL_QUERY_ESC("SELECT login, email, default_acl AS mode, la_mode FROM `{?_MYSQL_PREFIX?}_admins` WHERE `id`=%s LIMIT 1",
- array($id), __FUNCTION__, __LINE__);
+ array($id), __FUNCTION__, __LINE__);
if (SQL_NUMROWS($result) == 1) {
// Entry found
$content = SQL_FETCHARRAY($result);
if (getExtensionVersion('admins') >= '0.3.0') $add .= ', `default_acl` AS def_acl';
if (getExtensionVersion('admins') >= '0.6.7') $add .= ', `la_mode`';
if (getExtensionVersion('admins') >= '0.7.2') $add .= ', `login_failures`, UNIX_TIMESTAMP(`last_failure`) AS last_failure';
+ if (getExtensionVersion('admins') >= '0.7.3') $add .= ', `expert_settings`, `expert_warning`';
// Return it
return $add;
// Sends out mail to all administrators
// IMPORTANT: Please use SEND_ADMIN_NOTIFCATION() for now!
-function sendAdminsEmails ($subj, $template, $content, $UID) {
+function sendAdminsEmails ($subj, $template, $content, $userid) {
// Trim template name
$template = trim($template);
// Load email template
- $message = loadEmailTemplate($template, $content, $UID);
+ $message = loadEmailTemplate($template, $content, $userid);
// Check which admin shall receive this mail
$result = SQL_QUERY_ESC("SELECT `admin_id` FROM `{?_MYSQL_PREFIX?}_admins_mails` WHERE `mail_template`='%s' ORDER BY `admin_id` ASC",
if ($adminId == '-1') {
if (isExtensionActive('events')) {
// Add line to user events
- EVENTS_ADD_LINE($subj, $message, $UID);
+ EVENTS_ADD_LINE($subj, $message, $userid);
} else {
// Log error for debug
- logDebugMessage(__FUNCTION__, __LINE__, sprintf("Extension 'events' missing: tpl=%s,subj=%s,UID=%s",
+ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Extension 'events' missing: tpl=%s,subj=%s,userid=%s",
$template,
$subj,
- $UID
+ $userid
));
}
} elseif ($adminId == '0') {
SQL_FREERESULT($result);
}
+// "Getter" for current admin's expert settings
+function getAminsExpertSettings () {
+ // Default is has not the right
+ $data['expert_settings'] = 'N';
+
+ // Get current admin login
+ $admin = getAdminLogin(getCurrentAdminId());
+
+ // Lookup settings in cache
+ if (isset($GLOBALS['cache_array']['admin']['expert_settings'][$admin])) {
+ // Use cache
+ $data['expert_settings'] = $GLOBALS['cache_array']['admin']['expert_settings'][$admin];
+
+ // Update cache hits
+ incrementStatsEntry('cache_hits');
+ } elseif (!isExtensionInstalled('cache')) {
+ // Load from database
+ $result = SQL_QUERY_ESC("SELECT `expert_settings` FROM `{?_MYSQL_PREFIX?}_admins` WHERE `login`='%s' LIMIT 1",
+ array($admin), __FUNCTION__, __LINE__);
+
+ // Entry found?
+ if (SQL_NUMROWS($result) == 1) {
+ // Fetch data
+ $data = SQL_FETCHARRAY($result);
+
+ // Set cache
+ $GLOBALS['cache_array']['admin']['expert_settings'][$admin] = $data['expert_settings'];
+ } // END - if
+
+ // Free memory
+ SQL_FREERESULT($result);
+ }
+
+ // Return the result
+ return $data['expert_settings'];
+}
+
+// "Getter" for current admin's expert warning (if he wants to see them or not
+function getAminsExpertWarning () {
+ // Default is has not the right
+ $data['expert_warning'] = 'N';
+
+ // Get current admin login
+ $admin = getAdminLogin(getCurrentAdminId());
+
+ // Lookup warning in cache
+ if (isset($GLOBALS['cache_array']['admin']['expert_warning'][$admin])) {
+ // Use cache
+ $data['expert_warning'] = $GLOBALS['cache_array']['admin']['expert_warning'][$admin];
+
+ // Update cache hits
+ incrementStatsEntry('cache_hits');
+ } elseif (!isExtensionInstalled('cache')) {
+ // Load from database
+ $result = SQL_QUERY_ESC("SELECT `expert_warning` FROM `{?_MYSQL_PREFIX?}_admins` WHERE `login`='%s' LIMIT 1",
+ array($admin), __FUNCTION__, __LINE__);
+
+ // Entry found?
+ if (SQL_NUMROWS($result) == 1) {
+ // Fetch data
+ $data = SQL_FETCHARRAY($result);
+
+ // Set cache
+ $GLOBALS['cache_array']['admin']['expert_warning'][$admin] = $data['expert_warning'];
+ } // END - if
+
+ // Free memory
+ SQL_FREERESULT($result);
+ }
+
+ // Return the result
+ return $data['expert_warning'];
+}
+
// [EOF]
?>