X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fmodules%2Fadmin%2Fadmin-inc.php;h=b7537c8b604212d74f8b9bc9236c88aa6f78b9d0;hb=80769d81cc67b9213ea436e07365982fb3e7600d;hp=5a23e398d0a2ef1943ec66597a0cbf6f4dd47464;hpb=f82dc8c31646daf5c61df02d6d3664c3090f4a16;p=mailer.git
diff --git a/inc/modules/admin/admin-inc.php b/inc/modules/admin/admin-inc.php
index 5a23e398d0..b7537c8b60 100644
--- a/inc/modules/admin/admin-inc.php
+++ b/inc/modules/admin/admin-inc.php
@@ -97,7 +97,7 @@ function ifAdminLoginDataIsValid ($adminLogin, $adminPassword) {
// All fine
$ret = 'done';
} else {
- // Set status
+ // Did not match!
$ret = 'password';
}
} // END - if
@@ -626,9 +626,9 @@ function generateUserProfileLink ($userid, $title = '', $what = 'list_user') {
if (($title == '') && (isValidUserId($userid))) {
// Set userid as title
$title = $userid;
- } elseif ($userid == 0) {
+ } elseif (!isValidUserId($userid)) {
// User id zero is invalid
- return '' . $userid . '';
+ return '' . makeNullToZero($userid) . '';
}
if (($title == '0') && ($what == 'list_refs')) {
@@ -787,6 +787,15 @@ function sendAdminBuildMails ($mode, $table, $content, $id, $subjectPart = '', $
// Build a special template list
function adminListBuilder ($listType, $IDs, $table, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn, $userid = 'userid') {
+ // $table and $idColumn must bove be arrays!
+ if (!is_array($table)) {
+ // $table is no array
+ debug_report_bug(__FUNCTION__, __LINE__, 'table[]=' . gettype($table) . '!=array');
+ } elseif (!is_array($idColumn)) {
+ // $idColumn is no array
+ debug_report_bug(__FUNCTION__, __LINE__, 'idColumn[]=' . gettype($idColumn) . '!=array');
+ }
+
$OUT = '';
// "Walk"Â through all entries
@@ -795,7 +804,7 @@ function adminListBuilder ($listType, $IDs, $table, $columns, $filterFunctions,
$id = bigintval($id);
// Get result from a given column array and table name
- $result = SQL_RESULT_FROM_ARRAY($table, $columns, $idColumn, $id, __FUNCTION__, __LINE__);
+ $result = SQL_RESULT_FROM_ARRAY($table[0], $columns, $idColumn[0], $id, __FUNCTION__, __LINE__);
// Is there one entry?
if (SQL_NUMROWS($result) == 1) {
@@ -833,7 +842,7 @@ function adminListBuilder ($listType, $IDs, $table, $columns, $filterFunctions,
// Then list it
$OUT .= loadTemplate(sprintf("admin_%s_%s_row",
$listType,
- $table
+ $table[0]
), true, $content
);
} // END - if
@@ -845,7 +854,7 @@ function adminListBuilder ($listType, $IDs, $table, $columns, $filterFunctions,
// Load master template
loadTemplate(sprintf("admin_%s_%s",
$listType,
- $table
+ $table[0]
), false, $OUT
);
}
@@ -1156,8 +1165,22 @@ function adminListEntries ($tableTemplate, $rowTemplate, $noEntryMessageId, $tab
// Do we have entries from whereColumns to add?
if (count($whereColumns) > 0) {
// Then add these as well
- // @TODO WHERE is not yet supported
- debug_report_bug(__FUNCTION__, __LINE__, 'Unfinished area, please report your XML to the forums or bug tracker. tableTemplate=' . $tableTemplate . ',rowTemplate=' . $rowTemplate . ',tableName[0]=' . $tableName[0]);
+ if (count($whereColumns) == 1) {
+ // One entry found
+ $SQL .= ' WHERE ';
+
+ // Table/alias included?
+ if (!empty($whereColumns[0]['table'])) {
+ // Add it as well
+ $SQL .= $whereColumns[0]['table'] . '.';
+ } // END - if
+
+ // Add the rest
+ $SQL .= '`' . $whereColumns[0]['column'] . '`' . $whereColumns[0]['condition'] . "'" . $whereColumns[0]['look_for'] . "'";
+ } else {
+ // More than one entry -> Unsupported
+ debug_report_bug(__FUNCTION__, __LINE__, 'More than one WHERE statement found. This is currently not supported.');
+ }
} // END - if
// Do we have entries from orderByColumns to add?
@@ -1188,7 +1211,7 @@ function adminListEntries ($tableTemplate, $rowTemplate, $noEntryMessageId, $tab
}
// Do the listing of entries
-function doAdminListEntries($SQL, $tableTemplate, $noEntryMessageId, $rowTemplate, $callbackColumns, $extraParameters = array()) {
+function doAdminListEntries ($SQL, $tableTemplate, $noEntryMessageId, $rowTemplate, $callbackColumns, $extraParameters = array()) {
// Run the SQL query
$result = SQL_QUERY($SQL, __FUNCTION__, __LINE__);
@@ -1315,12 +1338,17 @@ function doResetAdminPassword ($login, $password) {
// Generate hash (we already check for sql_patches in generateHash())
$passHash = generateHash($password);
+ // Prepare fake POST data
+ $postData = array(
+ 'login' => array(getAdminId($login) => $login),
+ 'password' => array(getAdminId($login) => $passHash),
+ );
+
// Update database
- SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_admins` SET `password`='%s' WHERE `login`='%s' LIMIT 1",
- array($passHash, $login), __FUNCTION__, __LINE__);
+ $message = adminsChangeAdminAccount($postData, '', false);
// Run filters
- runFilterChain('post_form_reset_pass', array('login' => $login, 'hash' => $passHash));
+ runFilterChain('post_form_reset_pass', array('login' => $login, 'hash' => $passHash, 'message' => $message));
// Return output
return '{--ADMIN_PASSWORD_RESET_DONE--}';