From a6820e70bde7afc3e1b7ea537e4aff530675299b Mon Sep 17 00:00:00 2001 From: plegall Date: Fri, 28 Mar 2014 13:24:14 +0000 Subject: bug 3065 fixed: avoid SQL errors with external authentication git-svn-id: http://piwigo.org/svn/branches/2.6@27996 68402e56-0260-453c-a942-63ccdbb3a9ee --- admin/group_list.php | 2 +- admin/user_list_backend.php | 29 ++++++++++++++++++++++++----- include/functions_mail.inc.php | 2 +- 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/admin/group_list.php b/admin/group_list.php index 4912458f7..5c53a8b1f 100644 --- a/admin/group_list.php +++ b/admin/group_list.php @@ -394,7 +394,7 @@ $toggle_is_default_url = $admin_url.'group_list&toggle_is_default='; while ($row = pwg_db_fetch_assoc($result)) { $query = ' -SELECT username +SELECT u.'. $conf['user_fields']['username'].' AS username FROM '.USERS_TABLE.' AS u INNER JOIN '.USER_GROUP_TABLE.' AS ug ON u.'.$conf['user_fields']['id'].' = ug.user_id diff --git a/admin/user_list_backend.php b/admin/user_list_backend.php index b390ed1ec..1edaa1369 100644 --- a/admin/user_list_backend.php +++ b/admin/user_list_backend.php @@ -35,14 +35,23 @@ check_status(ACCESS_ADMINISTRATOR); /* Array of database columns which should be read and sent back to DataTables. Use a space where * you want to insert a non-database field (for example a counter or static image) */ -$aColumns = array('id', 'username', 'status', 'mail_address', 'recent_period', 'level', 'registration_date'); +$aColumns = array( + $conf['user_fields']['id'], + $conf['user_fields']['username'], + 'status', + $conf['user_fields']['email'], + 'recent_period', + 'level', + 'registration_date' + ); + $aColumns = trigger_change('user_list_columns', $aColumns); /* Indexed column (used for fast and accurate table cardinality) */ -$sIndexColumn = "id"; +$sIndexColumn = 'user_id'; /* DB table to use */ -$sTable = USERS_TABLE.' INNER JOIN '.USER_INFOS_TABLE.' AS ui ON id = ui.user_id'; +$sTable = USERS_TABLE.' INNER JOIN '.USER_INFOS_TABLE.' AS ui ON '.$conf['user_fields']['id'].' = ui.user_id'; /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * If you just want to use the basic configuration for DataTables with PHP server-side, there is @@ -162,7 +171,7 @@ $user_ids = array(); while ( $aRow = pwg_db_fetch_array( $rResult ) ) { - $user_ids[] = $aRow['id']; + $user_ids[] = $aRow[ $conf['user_fields']['id'] ]; $row = array(); for ( $i=0 ; $i $alias) + { + if ($aColumns[$i] == $real_name) + { + $colname = $alias; + } + } + + $row[] = $aRow[$colname]; } + } $output['aaData'][] = $row; } diff --git a/include/functions_mail.inc.php b/include/functions_mail.inc.php index 20dd9e610..8b6300b4b 100644 --- a/include/functions_mail.inc.php +++ b/include/functions_mail.inc.php @@ -440,7 +440,7 @@ SELECT WHERE i.status in (\'webmaster\', \'admin\') AND u.'.$conf['user_fields']['email'].' IS NOT NULL AND i.user_id <> '.$user['id'].' - ORDER BY username + ORDER BY name ;'; $admins = array_from_query($query); -- cgit v1.2.3