Fix user list extra field advanced search form see BT#12607

pull/2487/head
jmontoyaa 9 years ago
parent 7160e393d0
commit 14e0e594c4
  1. 36
      main/admin/user_list.php

@ -299,10 +299,10 @@ function prepare_user_sql_query($is_count)
}
$variables = Session::read('variables_to_show', []);
if (!empty($variables)) {
$extraField = new ExtraField('user');
$extraFieldResult = [];
$extraFieldHasData = [];
foreach ($variables as $variable) {
if (isset($_GET['extra_'.$variable])) {
if (is_array($_GET['extra_'.$variable])) {
@ -310,31 +310,53 @@ function prepare_user_sql_query($is_count)
} else {
$values = [$_GET['extra_'.$variable]];
}
$info = $extraField->get_handler_field_info_by_field_variable($variable);
if (empty($values)) {
continue;
}
$info = $extraField->get_handler_field_info_by_field_variable(
$variable
);
if (empty($info)) {
continue;
}
foreach ($values as $value) {
if (empty($value)) {
continue;
}
if ($info['field_type'] == ExtraField::FIELD_TYPE_TAG) {
$result = $extraField->getAllUserPerTag($info['id'], $value);
$result = empty($result) ? [] : array_column($result, 'user_id');
$result = $extraField->getAllUserPerTag(
$info['id'],
$value
);
$result = empty($result) ? [] : array_column(
$result,
'user_id'
);
} else {
$result = UserManager::get_extra_user_data_by_value(
$variable,
$value
);
}
$extraFieldHasData[] = true;
if (!empty($result)) {
$extraFieldResult = array_merge($extraFieldResult, $result);
$extraFieldResult = array_merge(
$extraFieldResult,
$result
);
}
}
}
}
if (!empty($extraFieldResult)) {
if (!empty($extraFieldHasData)) {
$sql .= " AND (u.id IN ('".implode("','", $extraFieldResult)."')) ";
}
}
// adding the filter to see the user's only of the current access_url
if ((api_is_platform_admin() || api_is_session_admin())

Loading…
Cancel
Save