X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fmodules%2Fadmin%2Fadmin-inc.php;h=47d8c45e2dc14dc4f1ebcc0616a53cea01489c42;hb=067dc339f4058c7834f5e5d2f7d8d44ce6d7cea3;hp=97aab22bfebb4c94ab3b1e4dcd38e076af164eaa;hpb=62b4ef5bb0b63f7cac5f0dccd816246a108a5d83;p=mailer.git diff --git a/inc/modules/admin/admin-inc.php b/inc/modules/admin/admin-inc.php index 97aab22bfe..47d8c45e2d 100644 --- a/inc/modules/admin/admin-inc.php +++ b/inc/modules/admin/admin-inc.php @@ -307,14 +307,14 @@ LIMIT 1", loadInclude($inc); } elseif ($GLOBALS['acl_allow'] === false) { // Access denied - loadTemplate('admin_menu_failed', false, sprintf(getMessage('ADMIN_ACCESS_DENIED'), $what)); + loadTemplate('admin_menu_failed', false, getMaskedMessage('ADMIN_ACCESS_DENIED', $what)); } else { // Include file not found! :-( - loadTemplate('admin_menu_failed', false, sprintf(getMessage('ADMIN_ACTION_404'), $action)); + loadTemplate('admin_menu_failed', false, getMaskedMessage('ADMIN_ACTION_404', $action)); } } else { // Invalid action/what pair found! - loadTemplate('admin_menu_failed', false, sprintf(getMessage('ADMIN_ACTION_INVALID'), $action . '/' . $what)); + loadTemplate('admin_menu_failed', false, getMaskedMessage('ADMIN_ACTION_INVALID', $action . '/' . $what)); } // Free memory @@ -532,7 +532,8 @@ function addMemberSelectionBox ($def=0, $add_all=false, $return=false, $none=fal // @DEPRECATED function adminMenuSelectionBox_DEPRECATED ($mode, $default = '', $defid = '') { $what = "`what` != ''"; - if ($mode == 'action') $what = "(`what`='' OR `what` IS NULL) AND action !='login'"; + if ($mode == 'action') $what = "(`what`='' OR `what` IS NULL) AND `action` !='login'"; + $result = SQL_QUERY_ESC("SELECT %s, `title` FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE ".$what." ORDER BY `sort` ASC", array($mode), __FUNCTION__, __LINE__); if (SQL_NUMROWS($result) > 0) { @@ -572,7 +573,7 @@ function adminSaveSettingsFromPostData ($tableName = '_config', $whereStatement // Save settings to the database function adminSaveSettings (&$postData, $tableName = '_config', $whereStatement = '`config`=0', $translateComma = array(), $alwaysAdd = false, $displayMessage = true) { // Prepare all arrays, variables - $DATA = array(); + $tableData = array(); $skip = false; // Now, walk through all entries and prepare them for saving @@ -580,10 +581,10 @@ function adminSaveSettings (&$postData, $tableName = '_config', $whereStatement // Process only formular field but not submit buttons ;) if ($id != 'ok') { // Do not save the ok value - convertSelectionsToTimestamp($postData, $DATA, $id, $skip); + convertSelectionsToTimestamp($postData, $tableData, $id, $skip); // Shall we process this id? It muss not be empty, of course - if (($skip === false) && (!empty($id)) && (!isset($GLOBALS['skip_config'][$id]))) { + if (($skip === false) && (!empty($id)) && ((!isset($GLOBALS['skip_config'][$id]))) || ($tableName != '_config')) { // Translate the value? (comma to dot!) if ((is_array($translateComma)) && (in_array($id, $translateComma))) { // Then do it here... :) @@ -594,10 +595,10 @@ function adminSaveSettings (&$postData, $tableName = '_config', $whereStatement $test = (float)$val; if ('' . $val . '' == '' . $test . '') { // Add numbers - $DATA[] = sprintf("`%s`=%s", $id, $test); + $tableData[] = sprintf("`%s`=%s", $id, $test); } else { // Add strings - $DATA[] = sprintf("`%s`='%s'", $id, trim($val)); + $tableData[] = sprintf("`%s`='%s'", $id, trim($val)); } // Do not add a config entry twice @@ -613,39 +614,40 @@ function adminSaveSettings (&$postData, $tableName = '_config', $whereStatement $result = false; if ($alwaysAdd === false) { if (!empty($whereStatement)) { - $result = SQL_QUERY("SELECT * FROM `{?_MYSQL_PREFIX?}".$tableName."` WHERE ".$whereStatement." LIMIT 1", __FUNCTION__, __LINE__); + $result = SQL_QUERY("SELECT * FROM `{?_MYSQL_PREFIX?}" . $tableName . "` WHERE " . $whereStatement . " LIMIT 1", __FUNCTION__, __LINE__); } else { - $result = SQL_QUERY("SELECT * FROM `{?_MYSQL_PREFIX?}".$tableName."` LIMIT 1", __FUNCTION__, __LINE__); + $result = SQL_QUERY("SELECT * FROM `{?_MYSQL_PREFIX?}" . $tableName . "` LIMIT 1", __FUNCTION__, __LINE__); } } // END - if if (SQL_NUMROWS($result) == 1) { // "Implode" all data to single string - $DATA_UPDATE = implode(', ', $DATA); + $updatedData = implode(', ', $tableData); // Generate SQL string $sql = sprintf("UPDATE `{?_MYSQL_PREFIX?}%s` SET %s WHERE %s LIMIT 1", $tableName, - $DATA_UPDATE, + $updatedData, $whereStatement ); } else { // Add Line (does only work with auto_increment! - $KEYs = array(); $values = array(); - foreach ($DATA as $entry) { + $keys = array(); $values = array(); + foreach ($tableData as $entry) { // Split up $line = explode('=', $entry); - $KEYs[] = $line[0]; $values[] = $line[1]; + $keys[] = $line[0]; + $values[] = $line[1]; } // END - foreach // Add both in one line - $KEYs = implode('`, `', $KEYs); + $keys = implode('`, `', $keys); $values = implode(', ', $values); // Generate SQL string $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}%s` (%s) VALUES (%s)", $tableName, - $KEYs, + $keys, $values ); } @@ -751,10 +753,12 @@ function adminGetMenuMode () { // Load from database when version of 'admins' is enough $result = SQL_QUERY_ESC("SELECT la_mode FROM `{?_MYSQL_PREFIX?}_admins` WHERE `id`=%s LIMIT 1", array($adminId), __FUNCTION__, __LINE__); + + // Do we have an entry? if (SQL_NUMROWS($result) == 1) { // Load data list($adminMode) = SQL_FETCHROW($result); - } + } // END - if // Free memory SQL_FREERESULT($result); @@ -823,7 +827,7 @@ function sendAdminBuildMails ($mode, $table, $content, $id, $subjectPart = '') { } // END - if // Is the raw userid set? - if (postRequestElement('userid_raw', $id) > 0) { + if (postRequestParameter('userid_raw', $id) > 0) { // Generate subject $subjectLine = getMessage('MEMBER_'.strtoupper($subject).'_'.strtoupper($table).'_SUBJECT'); @@ -835,7 +839,7 @@ function sendAdminBuildMails ($mode, $table, $content, $id, $subjectPart = '') { } // Send email out - sendEmail(postRequestElement('userid_raw', $id), $subjectLine, $mail); + sendEmail(postRequestParameter('userid_raw', $id), $subjectLine, $mail); } // END - if // Generate subject @@ -843,9 +847,9 @@ function sendAdminBuildMails ($mode, $table, $content, $id, $subjectPart = '') { // Send admin notification out if (!empty($subjectPart)) { - sendAdminNotification($subjectLine, 'admin_' . $mode . '_' . strtolower($subjectPart) . '_' . $table, $content, postRequestElement('userid_raw', $id)); + sendAdminNotification($subjectLine, 'admin_' . $mode . '_' . strtolower($subjectPart) . '_' . $table, $content, postRequestParameter('userid_raw', $id)); } else { - sendAdminNotification($subjectLine, 'admin_' . $mode . '_' . $table, $content, postRequestElement('userid_raw', $id)); + sendAdminNotification($subjectLine, 'admin_' . $mode . '_' . $table, $content, postRequestParameter('userid_raw', $id)); } } @@ -901,9 +905,9 @@ function adminListBuilder ($listType, $IDs, $table, $columns, $filterFunctions, // Load master template loadTemplate(sprintf("admin_%s_%s", - $listType, - $table - ), false, $OUT + $listType, + $table + ), false, $OUT ); } @@ -1003,7 +1007,7 @@ function adminDeleteEntriesConfirm ($IDs, $table, $columns=array(), $filterFunct $idList = ''; foreach ($IDs as $id => $sel) { // Is there a userid? - if (isPostRequestElementSet('userid_raw', $id)) { + if (isPostRequestParameterSet('userid_raw', $id)) { // Load all data from that id $result = SQL_QUERY_ESC("SELECT * FROM `{?_MYSQL_PREFIX?}_%s` WHERE %s=%s LIMIT 1", array($table, $idColumn, $id), __FUNCTION__, __LINE__); @@ -1092,7 +1096,7 @@ function adminEditEntriesConfirm ($IDs, $table, $columns=array(), $filterFunctio } // END - foreach // Finish SQL command - $sql = substr($sql, 0, -1) . " WHERE `".$idColumn."`=".bigintval($id)." LIMIT 1"; + $sql = substr($sql, 0, -1) . " WHERE `" . $idColumn . "`=" . bigintval($id) . " LIMIT 1"; // Run this query SQL_QUERY($sql, __FUNCTION__, __LINE__); @@ -1136,10 +1140,10 @@ function adminLockEntriesConfirm ($IDs, $table, $columns=array(), $filterFunctio // Shall we un-/lock here or list for locking? if ($lockNow === true) { // Un-/lock entries - adminBuilderStatusHandler("lock", $IDs, $table, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn, $statusArray); + adminBuilderStatusHandler('lock', $IDs, $table, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn, $statusArray); } else { // List for editing - adminListBuilder("lock", $IDs, $table, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn); + adminListBuilder('lock', $IDs, $table, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn); } } // END - if } @@ -1151,10 +1155,10 @@ function adminUndeleteEntriesConfirm ($IDs, $table, $columns=array(), $filterFun // Shall we un-/lock here or list for locking? if ($undeleteNow === true) { // Undelete entries - adminBuilderStatusHandler("undelete", $IDs, $table, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn, $statusArray); + adminBuilderStatusHandler('undelete', $IDs, $table, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn, $statusArray); } else { // List for editing - adminListBuilder("undelete", $IDs, $table, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn); + adminListBuilder('undelete', $IDs, $table, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn); } } // END - if } @@ -1196,7 +1200,7 @@ function sendAdminPasswordResetLink ($email) { SQL_FREERESULT($result); // Generate hash for reset link - $content['hash'] = generateHash(getConfig('URL').':'.$content['id'].':'.$content['login'].':'.$content['password'], substr($content['password'], 10)); + $content['hash'] = generateHash(getConfig('URL') . ':' . $content['id'] . ':' . $content['login'] . ':' . $content['password'], substr($content['password'], 10)); // Remove some data unset($content['id']); @@ -1297,17 +1301,24 @@ function adminUpdateTaskData ($id, $row, $data) { // Update the task SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_task_system` SET `%s`='%s' WHERE `id`=%s LIMIT 1", - array($row, $data, bigintval($id)), __FUNCTION__, __LINE__); + array( + $row, + $data, + bigintval($id) + ), __FUNCTION__, __LINE__); } // Checks wether if the admin menu has entries function ifAdminMenuHasEntries ($action) { return ( (( + // Is the entry set? isset($GLOBALS['admin_menu_has_entries'][$action]) ) && ( + // And do we have a menu for this action? $GLOBALS['admin_menu_has_entries'][$action] === true )) || ( + // Login has always a menu $action == 'login' ) ); @@ -1323,7 +1334,7 @@ function adminCreateUserLink ($userid) { // Is the userid set correctly? if ($userid > 0) { // Create a link to that profile - return '{%url=modules.php?module=admin&what=list_user&userid='.bigintval($userid) . '%}'; + return '{%url=modules.php?module=admin&what=list_user&userid=' . bigintval($userid) . '%}'; } // END - if // Return a link to the user list @@ -1333,7 +1344,7 @@ function adminCreateUserLink ($userid) { // Generate a "link" for the given admin id (admin_id) function generateAdminLink ($adminId) { // No assigned admin is default - $adminLink = "{--ADMIN_NO_ADMIN_ASSIGNED--}"; + $adminLink = '{--ADMIN_NO_ADMIN_ASSIGNED--}'; // Zero? = Not assigned if (bigintval($adminId) > 0) { @@ -1345,14 +1356,14 @@ function generateAdminLink ($adminId) { // Is the extension there? if (isExtensionActive('admins')) { // Admin found - $adminLink = "" . $login.""; + $adminLink = '' . $login . ''; } else { // Extension not found - $adminLink = sprintf(getMessage('EXTENSION_PROBLEM_NOT_INSTALLED'), 'admins'); + $adminLink = getMaskedMessage('EXTENSION_PROBLEM_NOT_INSTALLED', 'admins'); } } else { // Maybe deleted? - $adminLink = "
".sprintf(getMessage('ADMIN_ID_404'), $adminId)."
"; + $adminLink = '
' . getMaskedMessage('ADMIN_ID_404', $adminId) . '
'; } } // END - if @@ -1360,5 +1371,73 @@ function generateAdminLink ($adminId) { return $adminLink; } +// Verifies if the current admin has confirmed to alter expert settings +// +// Return values: +// 'failed' = Something goes wrong (default) +// 'agreed' = Has verified and and confirmed it to see them +// 'forbidden' = Has not the proper right to alter them +// 'update' = Need to update extension 'admins' +// 'ask' = A form was send to the admin +function doVerifyExpertSettings () { + // Default return status is failed + $return = 'failed'; + + // Is the extension installed and recent? + if (isExtensionInstalledAndNewer('admins', '0.7.3')) { + // Okay, load the status + $expertSettings = getAminsExpertSettings(); + + // Is he allowed? + if ($expertSettings == 'Y') { + // Okay, does he want to see them? + if (getAminsExpertWarning() == 'Y') { + // Ask for them + if (isFormSent()) { + // Is the element set, then we need to change the admin + if (isPostRequestParameterSet('expert_settings')) { + // Get it and prepare final post data array + $postData['login'][getCurrentAdminId()] = getAdminLogin(getCurrentAdminId()); + $postData['expert_warning'][getCurrentAdminId()] = 'N'; + + // Change it in the admin + adminsChangeAdminAccount($postData, 'expert_warning'); + + // Clear form + unsetPostRequestParameter('ok'); + } // END - if + + // All fine! + $return = 'agreed'; + } else { + // Send form + loadTemplate('admin_expert_settings_form'); + + // Asked for it + $return = 'ask'; + } + } else { + // Do not display + $return = 'agreed'; + } + } else { + // Forbidden + $return = 'forbidden'; + } + } else { + // Out-dated extension or not installed + $return = 'update'; + } + + // Output message for other status than ask/agreed + if (($return != 'ask') && ($return != 'agreed')) { + // Output message + loadTemplate('admin_settings_saved', false, getMessage('ADMIN_EXPERT_SETTINGS_STATUS_' . strtoupper($return))); + } // END - if + + // Return status + return $return; +} + // [EOF] ?>