fixes #1162 filter users on a specific group

This commit is contained in:
plegall
2020-02-18 10:50:36 +01:00
parent d365e2d216
commit e21ef06e3d
6 changed files with 50 additions and 6 deletions

View File

@@ -402,6 +402,7 @@ $result = pwg_query($query);
$admin_url = get_root_url().'admin.php?page=';
$perm_url = $admin_url.'group_perm&group_id=';
$users_url = $admin_url.'user_list&group=';
$del_url = $admin_url.'group_list&delete=';
$toggle_is_default_url = $admin_url.'group_list&toggle_is_default=';
@@ -431,6 +432,7 @@ SELECT u.'. $conf['user_fields']['username'].' AS username
'MEMBERS' => l10n_dec('%d member', '%d members', count($members)),
'U_DELETE' => $del_url.$row['id'].'&pwg_token='.get_pwg_token(),
'U_PERM' => $perm_url.$row['id'],
'U_USERS' => $users_url.$row['id'],
'U_ISDEFAULT' => $toggle_is_default_url.$row['id'].'&pwg_token='.get_pwg_token(),
)
);

View File

@@ -97,7 +97,8 @@ $(document).ready(function() {
<li>
<label><p>{$group.NAME}<i><small>{$group.IS_DEFAULT}</small></i><input class="group_selection" name="group_selection[]" type="checkbox" value="{$group.ID}"></p></label>
<p class="list_user">{if $group.MEMBERS>0}{$group.MEMBERS}<br>{$group.L_MEMBERS}{else}{$group.MEMBERS}{/if}</p>
<a class="icon-lock group_perm" href="{$group.U_PERM}" title="{'Permissions'|@translate}">{'Permissions'|translate}</a>
<a class="icon-group group_users" href="{$group.U_USERS}">{'Users'|translate}</a>
<a class="icon-lock group_perm" href="{$group.U_PERM}">{'Permissions'|translate}</a>
</li>
{/foreach}
{/if}

View File

@@ -617,6 +617,9 @@ jQuery(document).on('click', '.close-user-details', function(e) {
serverMethod: "POST",
ajaxSource: "admin/user_list_backend.php",
pagingType: "simple",
{/literal}{if (isset($filter_group))}{literal}
"oSearch": {"sSearch": "group:{/literal}{$filter_group}{literal}"},
{/literal}{/if}{literal}
language: {
processing: "{/literal}{'Loading...'|translate|escape:'javascript'}{literal}",
lengthMenu: sprintf("{/literal}{'Show %s users'|translate|escape:'javascript'}{literal}", '_MENU_'),

View File

@@ -1492,8 +1492,13 @@ p.list_user {
}
a.group_perm {
position: absolute;
bottom: 5px;
right: 5px;
bottom: 10px;
right: 15px;
}
a.group_users {
position: absolute;
bottom: 10px;
left: 15px;
}
#userList .openUserDetails {visibility:hidden;}

View File

@@ -10,6 +10,8 @@
* Add users and manage users list
*/
check_input_parameter('group', $_GET, false, PATTERN_ID);
// +-----------------------------------------------------------------------+
// | tabs |
// +-----------------------------------------------------------------------+
@@ -117,6 +119,7 @@ $template->assign(
'protected_users' => implode(',', array_unique($protected_users)),
'password_protected_users' => implode(',', array_unique($password_protected_users)),
'guest_user' => $conf['guest_id'],
'filter_group' => (isset($_GET['group']) ? $_GET['group'] : null),
)
);

View File

@@ -16,6 +16,8 @@ check_status(ACCESS_ADMINISTRATOR);
check_input_parameter('iDisplayStart', $_REQUEST, false, PATTERN_ID);
check_input_parameter('iDisplayLength', $_REQUEST, false, PATTERN_ID);
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Easy set variables
*/
@@ -91,11 +93,39 @@ if ( isset( $_REQUEST['iSortCol_0'] ) )
$sWhere = "";
if ( $_REQUEST['sSearch'] != "" )
{
$sWhere = "WHERE (";
for ( $i=0 ; $i<count($aColumns) ; $i++ )
$user_ids = null;
if (preg_match('/group:(\d+)/', $_REQUEST['sSearch'], $matches))
{
$sWhere .= $aColumns[$i]." LIKE '%".pwg_db_real_escape_string( $_REQUEST['sSearch'] )."%' OR ";
$group_id = $matches[1];
$query = '
SELECT
`user_id`
FROM '.USER_GROUP_TABLE.'
WHERE `group_id` = '.$group_id.'
';
$user_ids = query2array($query, null, 'user_id');
$user_ids[] = -1;
$_REQUEST['sSearch'] = preg_replace('/group:(\d+)/', '', $_REQUEST['sSearch']);
}
$sWhere = "WHERE (";
if (is_array($user_ids))
{
$sWhere.= '`user_id` IN ('.implode(',', $user_ids).') OR ';
}
if ($_REQUEST['sSearch'] != "")
{
for ( $i=0 ; $i<count($aColumns) ; $i++ )
{
$sWhere .= $aColumns[$i]." LIKE '%".pwg_db_real_escape_string( $_REQUEST['sSearch'] )."%' OR ";
}
}
$sWhere = substr_replace( $sWhere, "", -3 );
$sWhere .= ')';
}