mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-29 08:45:12 +02:00
Fixed users list view
This commit is contained in:
parent
0162767f6d
commit
891e485781
@ -80,13 +80,24 @@ if (is_metaconsole() === false) {
|
||||
|
||||
$buttons[$tab]['active'] = true;
|
||||
|
||||
ui_print_page_header(
|
||||
__('User management').' » '.__('Profiles defined on %s', get_product_name()),
|
||||
// Header.
|
||||
ui_print_standard_header(
|
||||
__('User Profile management'),
|
||||
'images/gm_users.png',
|
||||
false,
|
||||
'profile_tab',
|
||||
true,
|
||||
$buttons
|
||||
false,
|
||||
$buttons,
|
||||
[
|
||||
[
|
||||
'link' => '',
|
||||
'label' => __('Profiles'),
|
||||
],
|
||||
[
|
||||
'link' => '',
|
||||
'label' => __('Manage users'),
|
||||
],
|
||||
]
|
||||
);
|
||||
$sec = 'gusuarios';
|
||||
} else {
|
||||
|
@ -14,7 +14,7 @@
|
||||
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||
*
|
||||
* ============================================================================
|
||||
* Copyright (c) 2005-2021 Artica Soluciones Tecnologicas
|
||||
* Copyright (c) 2005-2023 Artica Soluciones Tecnologicas
|
||||
* Please see http://pandorafms.org for full contribution list
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
@ -285,13 +285,24 @@ if (is_metaconsole() === true) {
|
||||
|
||||
$buttons[$tab]['active'] = true;
|
||||
|
||||
ui_print_page_header(
|
||||
__('User management').' » '.__('Users defined on %s', get_product_name()),
|
||||
// Header.
|
||||
ui_print_standard_header(
|
||||
__('Users management'),
|
||||
'images/gm_users.png',
|
||||
false,
|
||||
'',
|
||||
true,
|
||||
$buttons
|
||||
false,
|
||||
$buttons,
|
||||
[
|
||||
[
|
||||
'link' => '',
|
||||
'label' => __('Profiles'),
|
||||
],
|
||||
[
|
||||
'link' => '',
|
||||
'label' => __('Manage users'),
|
||||
],
|
||||
]
|
||||
);
|
||||
|
||||
$sec = 'gusuarios';
|
||||
@ -443,12 +454,14 @@ if (($filter_group == 0) && ($filter_search == '')) {
|
||||
$search = false;
|
||||
}
|
||||
|
||||
$table = new stdClass();
|
||||
$table->width = '100%';
|
||||
$table->class = 'databox filters';
|
||||
$table->rowclass[0] = '';
|
||||
$table->data[0][0] = '<b>'.__('Group').'</b>';
|
||||
$table->data[0][1] = html_print_select_groups(
|
||||
$filterTable = new stdClass();
|
||||
$filterTable->width = '100%';
|
||||
$filterTable->class = 'fixed_filter_bar';
|
||||
$filterTable->rowclass[0] = '';
|
||||
$filterTable->cellstyle[0][0] = 'width:0';
|
||||
$filterTable->cellstyle[0][1] = 'width:0';
|
||||
$filterTable->data[0][0] = __('Group');
|
||||
$filterTable->data[1][0] = html_print_select_groups(
|
||||
false,
|
||||
'AR',
|
||||
true,
|
||||
@ -459,8 +472,8 @@ $table->data[0][1] = html_print_select_groups(
|
||||
0,
|
||||
true
|
||||
);
|
||||
$table->data[0][2] = '<b>'.__('Search').'</b>'.ui_print_help_tip(__('Search by username, fullname or email'), true);
|
||||
$table->data[0][3] = html_print_input_text(
|
||||
$filterTable->data[0][1] = __('Search').ui_print_help_tip(__('Search by username, fullname or email'), true);
|
||||
$filterTable->data[1][1] = html_print_input_text(
|
||||
'filter_search',
|
||||
$filter_search,
|
||||
__('Search by username, fullname or email'),
|
||||
@ -468,11 +481,16 @@ $table->data[0][3] = html_print_input_text(
|
||||
90,
|
||||
true
|
||||
);
|
||||
$table->data[0][4] = html_print_submit_button(
|
||||
$filterTable->cellstyle[1][2] = 'vertical-align: bottom';
|
||||
$filterTable->data[1][2] = html_print_submit_button(
|
||||
__('Search'),
|
||||
'search',
|
||||
false,
|
||||
['class' => 'sub search'],
|
||||
[
|
||||
'icon' => 'search',
|
||||
'class' => 'float-right',
|
||||
'mode' => 'secondary mini',
|
||||
],
|
||||
true
|
||||
);
|
||||
|
||||
@ -497,22 +515,16 @@ if (is_metaconsole() === false && is_management_allowed() === false) {
|
||||
|
||||
|
||||
if (is_metaconsole() === true) {
|
||||
$table->width = '96%';
|
||||
$filterTable->width = '96%';
|
||||
$form_filter = "<form class='filters_form' method='post'>";
|
||||
$form_filter .= html_print_table($table, true);
|
||||
$form_filter .= html_print_table($filterTable, true);
|
||||
$form_filter .= '</form>';
|
||||
ui_toggle($form_filter, __('Show Options'));
|
||||
} else {
|
||||
$form_filter = "<form method='post'>";
|
||||
$form_filter .= html_print_table($table, true);
|
||||
$form_filter .= html_print_table($filterTable, true);
|
||||
$form_filter .= '</form>';
|
||||
ui_toggle(
|
||||
$form_filter,
|
||||
__('Users control filter'),
|
||||
__('Toggle filter(s)'),
|
||||
'',
|
||||
!$search
|
||||
);
|
||||
echo $form_filter;
|
||||
}
|
||||
|
||||
// Urls to sort the table.
|
||||
@ -527,8 +539,9 @@ $url_down_last = '?sec='.$sec.'&sec2=godmode/users/user_list&sort_field=last_con
|
||||
$table = new stdClass();
|
||||
$table->cellpadding = 0;
|
||||
$table->cellspacing = 0;
|
||||
$table->width = '100%';
|
||||
$table->class = 'info_table';
|
||||
$table->class = 'info_table tactical_table';
|
||||
$table->id = 'user_list';
|
||||
$table->styleTable = 'margin: 0 10px';
|
||||
|
||||
$table->head = [];
|
||||
$table->data = [];
|
||||
@ -536,15 +549,18 @@ $table->align = [];
|
||||
$table->size = [];
|
||||
$table->valign = [];
|
||||
|
||||
$table->head[0] = __('User ID').ui_get_sorting_arrows($url_up_id, $url_down_id, $selectUserIDUp, $selectUserIDDown);
|
||||
$table->head[1] = __('Name').ui_get_sorting_arrows($url_up_name, $url_down_name, $selectFullnameUp, $selectFullnameDown);
|
||||
$table->head[2] = __('Last contact').ui_get_sorting_arrows($url_up_last, $url_down_last, $selectLastConnectUp, $selectLastConnectDown);
|
||||
$table->head[0] = '<span>'.__('User ID').'</span>';
|
||||
$table->head[0] .= ui_get_sorting_arrows($url_up_id, $url_down_id, $selectUserIDUp, $selectUserIDDown);
|
||||
$table->head[1] = '<span>'.__('Name').'</span>';
|
||||
$table->head[1] .= ui_get_sorting_arrows($url_up_name, $url_down_name, $selectFullnameUp, $selectFullnameDown);
|
||||
$table->head[2] = '<span>'.__('Last contact').'</span>';
|
||||
$table->head[2] .= ui_get_sorting_arrows($url_up_last, $url_down_last, $selectLastConnectUp, $selectLastConnectDown);
|
||||
|
||||
$table->head[3] = __('Admin');
|
||||
$table->head[4] = __('Profile / Group');
|
||||
$table->head[5] = __('Description');
|
||||
$table->head[3] = '<span>'.__('Admin').'</span>';
|
||||
$table->head[4] = '<span>'.__('Profile / Group').'</span>';
|
||||
$table->head[5] = '<span>'.__('Description').'</span>';
|
||||
if ($is_management_allowed === true) {
|
||||
$table->head[6] = '<span title="Operations">'.__('Op.').'</span>';
|
||||
$table->head[6] = '<span>'.__('Actions').'</span>';
|
||||
}
|
||||
|
||||
if (is_metaconsole() === false) {
|
||||
@ -579,7 +595,7 @@ if ($user_is_admin) {
|
||||
} else {
|
||||
$group_um = users_get_groups_UM($config['id_user']);
|
||||
// 0 is the group 'all'.
|
||||
if (isset($group_um[0])) {
|
||||
if (isset($group_um[0]) === true) {
|
||||
$info1 = get_users($order);
|
||||
} else {
|
||||
foreach ($group_um as $group => $value) {
|
||||
@ -636,9 +652,6 @@ foreach ($info1 as $user_id => $user_info) {
|
||||
|
||||
$info = $info1;
|
||||
|
||||
// Prepare pagination.
|
||||
ui_pagination(count($info));
|
||||
|
||||
$offset = (int) get_parameter('offset');
|
||||
$limit = (int) $config['block_size'];
|
||||
|
||||
@ -720,12 +733,12 @@ foreach ($info as $user_id => $user_info) {
|
||||
|
||||
if ($user_info['is_admin']) {
|
||||
$data[3] = html_print_image(
|
||||
'images/user_suit.png',
|
||||
'images/user.svg',
|
||||
true,
|
||||
[
|
||||
'alt' => __('Admin'),
|
||||
'title' => __('Administrator'),
|
||||
'class' => 'invert_filter',
|
||||
'class' => 'main_menu_icon invert_filter',
|
||||
]
|
||||
).' ';
|
||||
} else {
|
||||
@ -784,10 +797,10 @@ foreach ($info as $user_id => $user_info) {
|
||||
}
|
||||
|
||||
$data[5] = ui_print_string_substr($user_info['comments'], 24, true);
|
||||
|
||||
if ($is_management_allowed === true) {
|
||||
$table->cellclass[][6] = 'table_action_buttons';
|
||||
$data[6] = '';
|
||||
$userListActionButtons = [];
|
||||
if ($is_management_allowed === true) {
|
||||
if ($user_is_admin
|
||||
|| $config['id_user'] == $user_info['id_user']
|
||||
|| isset($group_um[0])
|
||||
@ -796,18 +809,35 @@ foreach ($info as $user_id => $user_info) {
|
||||
) {
|
||||
// Disable / Enable user.
|
||||
if (isset($user_info['not_delete']) === false) {
|
||||
if ($user_info['disabled'] == 0) {
|
||||
if ((int) $user_info['disabled'] === 0) {
|
||||
$toDoString = __('Disable');
|
||||
$toDoAction = '1';
|
||||
$toDoImage = 'images/lightbulb.png';
|
||||
$toDoImage = 'images/disable.svg';
|
||||
$toDoClass = '';
|
||||
} else {
|
||||
$toDoString = __('Enable');
|
||||
$toDoAction = '0';
|
||||
$toDoImage = 'images/lightbulb_off.png';
|
||||
$toDoImage = 'images/enable.svg';
|
||||
$toDoClass = 'filter_none';
|
||||
}
|
||||
|
||||
$userListActionButtons[] = html_print_menu_button(
|
||||
[
|
||||
'href' => ui_get_full_url(
|
||||
sprintf(
|
||||
'index.php?sec=%s&sec2=godmode/users/user_list&disable_user=%s&pure=%s&id=%s',
|
||||
$sec,
|
||||
$toDoAction,
|
||||
$pure,
|
||||
$user_info['id_user']
|
||||
)
|
||||
),
|
||||
'image' => $toDoImage,
|
||||
'title' => $toDoString,
|
||||
],
|
||||
true
|
||||
);
|
||||
/*
|
||||
$data[6] = '<form method="POST" action="index.php?sec='.$sec.'&sec2=godmode/users/user_list&pure='.$pure.'" class="inline">';
|
||||
$data[6] .= html_print_input_hidden(
|
||||
'id',
|
||||
@ -828,12 +858,14 @@ foreach ($info as $user_id => $user_info) {
|
||||
[
|
||||
'data-title' => $toDoString,
|
||||
'data-use_title_for_force_title' => '1',
|
||||
'class' => 'forced_title no-padding '.$toDoClass,
|
||||
'class' => 'main_menu_icon forced_title no-padding '.$toDoClass,
|
||||
]
|
||||
);
|
||||
$data[6] .= '</form>';
|
||||
*/
|
||||
}
|
||||
|
||||
/*
|
||||
// Edit user.
|
||||
$data[6] .= '<form method="POST" action="index.php?sec='.$sec.'&sec2=godmode/users/configure_user&pure='.$pure.'" id="edit_user_form_'.$user_info['id_user'].'" class="inline">';
|
||||
$data[6] .= html_print_input_hidden(
|
||||
@ -848,22 +880,39 @@ foreach ($info as $user_id => $user_info) {
|
||||
);
|
||||
$data[6] .= html_print_input_image(
|
||||
'submit_edit_user',
|
||||
'images/config.png',
|
||||
'images/edit.svg',
|
||||
'',
|
||||
'padding:0',
|
||||
true,
|
||||
[
|
||||
'data-title' => __('Edit'),
|
||||
'data-use_title_for_force_title' => '1',
|
||||
'class' => 'forced_title no-padding',
|
||||
'class' => 'main_menu_icon forced_title no-padding',
|
||||
]
|
||||
);
|
||||
$data[6] .= '</form>';
|
||||
$data[6] .= '</form>';*/
|
||||
|
||||
$userListActionButtons[] = html_print_menu_button(
|
||||
[
|
||||
'href' => ui_get_full_url(
|
||||
sprintf(
|
||||
'index.php?sec=%s&sec2=godmode/users/configure_user&edit_user=1&pure=%s&id_user=%s',
|
||||
$sec,
|
||||
$pure,
|
||||
$user_info['id_user']
|
||||
)
|
||||
),
|
||||
'image' => 'images/edit.svg',
|
||||
'title' => __('Edit user'),
|
||||
],
|
||||
true
|
||||
);
|
||||
|
||||
if ($config['admin_can_delete_user']
|
||||
&& $user_info['id_user'] != $config['id_user']
|
||||
&& isset($user_info['not_delete']) === false
|
||||
) {
|
||||
/*
|
||||
$data[6] .= '<form method="POST" action="index.php?sec='.$sec.'&sec2=godmode/users/user_list&pure='.$pure.'" class="inline">';
|
||||
$data[6] .= html_print_input_hidden(
|
||||
'delete_user',
|
||||
@ -877,17 +926,33 @@ foreach ($info as $user_id => $user_info) {
|
||||
);
|
||||
$data[6] .= html_print_input_image(
|
||||
'submit_delete_user',
|
||||
'images/cross.png',
|
||||
'images/delete.svg',
|
||||
'',
|
||||
'padding:0',
|
||||
true,
|
||||
[
|
||||
'data-title' => __('Delete'),
|
||||
'data-use_title_for_force_title' => '1',
|
||||
'class' => 'forced_title no-padding',
|
||||
'class' => 'main_menu_icon forced_title no-padding',
|
||||
]
|
||||
);
|
||||
$data[6] .= '</form>';
|
||||
*/
|
||||
$userListActionButtons[] = html_print_menu_button(
|
||||
[
|
||||
'href' => ui_get_full_url(
|
||||
sprintf(
|
||||
'index.php?sec=%s&sec2=godmode/users/user_list&user_del=1&pure=%s&delete_user=%s',
|
||||
$sec,
|
||||
$pure,
|
||||
$user_info['id_user']
|
||||
)
|
||||
),
|
||||
'image' => 'images/delete.svg',
|
||||
'title' => __('Delete'),
|
||||
],
|
||||
true
|
||||
);
|
||||
|
||||
if (is_metaconsole() === true) {
|
||||
$data[6] .= '<form method="POST" action="index.php?sec='.$sec.'&sec2=godmode/users/user_list&pure='.$pure.'" class="inline">';
|
||||
@ -907,11 +972,16 @@ foreach ($info as $user_id => $user_info) {
|
||||
true
|
||||
);
|
||||
$data[6] .= '</form>';
|
||||
} else {
|
||||
$data[6] = implode('', $userListActionButtons);
|
||||
}
|
||||
} else {
|
||||
$data[6] .= '';
|
||||
// Delete button not in this mode.
|
||||
}
|
||||
|
||||
// TODO. Check this in META!!!
|
||||
$data[6] = implode('', $userListActionButtons);
|
||||
} else {
|
||||
$data[6] .= '';
|
||||
// Delete button not in this mode.
|
||||
@ -922,24 +992,27 @@ foreach ($info as $user_id => $user_info) {
|
||||
}
|
||||
|
||||
html_print_table($table);
|
||||
ui_pagination(count($info), false, 0, 0, false, 'offset', true, 'pagination-bottom');
|
||||
|
||||
echo '<div style="width: '.$table->width.'" class="action-buttons">';
|
||||
unset($table);
|
||||
if ($is_management_allowed === true) {
|
||||
if ($config['admin_can_add_user'] !== false) {
|
||||
echo '<form method="post" action="index.php?sec='.$sec.'&sec2=godmode/users/configure_user&pure='.$pure.'">';
|
||||
html_print_action_buttons(
|
||||
html_print_submit_button(
|
||||
__('Create user'),
|
||||
'crt',
|
||||
false,
|
||||
[ 'icon' => 'wand' ],
|
||||
true
|
||||
),
|
||||
['type' => 'form_action'],
|
||||
);
|
||||
html_print_input_hidden('new_user', 1);
|
||||
html_print_submit_button(__('Create user'), 'crt', false, 'class="sub next"');
|
||||
echo '</form>';
|
||||
} else {
|
||||
echo '<i>'.__("The current authentication scheme doesn't support creating users on %s", get_product_name()).'</i>';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
echo '</div>';
|
||||
|
||||
enterprise_hook('close_meta_frame');
|
||||
|
||||
?>
|
||||
|
@ -3950,7 +3950,7 @@ function html_print_table(&$table, $return=false)
|
||||
}
|
||||
|
||||
$output .= '</tbody></table>'."\n";
|
||||
|
||||
hd($output, true);
|
||||
if ($return) {
|
||||
return $output;
|
||||
}
|
||||
|
@ -4302,8 +4302,8 @@ span.log_zone_line_error {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.rowPair:hover,
|
||||
.rowOdd:hover {
|
||||
tr.rowPair:hover,
|
||||
tr.rowOdd:hover {
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
@ -10769,6 +10769,7 @@ pre.external_tools_output {
|
||||
.fixed_filter_bar {
|
||||
position: sticky;
|
||||
top: 114px;
|
||||
margin-bottom: 10px;
|
||||
border: 1px solid #e5e9ed;
|
||||
background-color: #fff;
|
||||
z-index: 1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user