mirror of
https://github.com/Piwigo/Piwigo.git
synced 2026-08-06 00:33:20 +02:00
fixes #1162 filter users on a specific group
This commit is contained in:
@@ -402,6 +402,7 @@ $result = pwg_query($query);
|
|||||||
|
|
||||||
$admin_url = get_root_url().'admin.php?page=';
|
$admin_url = get_root_url().'admin.php?page=';
|
||||||
$perm_url = $admin_url.'group_perm&group_id=';
|
$perm_url = $admin_url.'group_perm&group_id=';
|
||||||
|
$users_url = $admin_url.'user_list&group=';
|
||||||
$del_url = $admin_url.'group_list&delete=';
|
$del_url = $admin_url.'group_list&delete=';
|
||||||
$toggle_is_default_url = $admin_url.'group_list&toggle_is_default=';
|
$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)),
|
'MEMBERS' => l10n_dec('%d member', '%d members', count($members)),
|
||||||
'U_DELETE' => $del_url.$row['id'].'&pwg_token='.get_pwg_token(),
|
'U_DELETE' => $del_url.$row['id'].'&pwg_token='.get_pwg_token(),
|
||||||
'U_PERM' => $perm_url.$row['id'],
|
'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(),
|
'U_ISDEFAULT' => $toggle_is_default_url.$row['id'].'&pwg_token='.get_pwg_token(),
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -97,7 +97,8 @@ $(document).ready(function() {
|
|||||||
<li>
|
<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>
|
<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>
|
<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>
|
</li>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
{/if}
|
{/if}
|
||||||
|
|||||||
@@ -617,6 +617,9 @@ jQuery(document).on('click', '.close-user-details', function(e) {
|
|||||||
serverMethod: "POST",
|
serverMethod: "POST",
|
||||||
ajaxSource: "admin/user_list_backend.php",
|
ajaxSource: "admin/user_list_backend.php",
|
||||||
pagingType: "simple",
|
pagingType: "simple",
|
||||||
|
{/literal}{if (isset($filter_group))}{literal}
|
||||||
|
"oSearch": {"sSearch": "group:{/literal}{$filter_group}{literal}"},
|
||||||
|
{/literal}{/if}{literal}
|
||||||
language: {
|
language: {
|
||||||
processing: "{/literal}{'Loading...'|translate|escape:'javascript'}{literal}",
|
processing: "{/literal}{'Loading...'|translate|escape:'javascript'}{literal}",
|
||||||
lengthMenu: sprintf("{/literal}{'Show %s users'|translate|escape:'javascript'}{literal}", '_MENU_'),
|
lengthMenu: sprintf("{/literal}{'Show %s users'|translate|escape:'javascript'}{literal}", '_MENU_'),
|
||||||
|
|||||||
@@ -1492,8 +1492,13 @@ p.list_user {
|
|||||||
}
|
}
|
||||||
a.group_perm {
|
a.group_perm {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 5px;
|
bottom: 10px;
|
||||||
right: 5px;
|
right: 15px;
|
||||||
|
}
|
||||||
|
a.group_users {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 10px;
|
||||||
|
left: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#userList .openUserDetails {visibility:hidden;}
|
#userList .openUserDetails {visibility:hidden;}
|
||||||
|
|||||||
@@ -10,6 +10,8 @@
|
|||||||
* Add users and manage users list
|
* Add users and manage users list
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
check_input_parameter('group', $_GET, false, PATTERN_ID);
|
||||||
|
|
||||||
// +-----------------------------------------------------------------------+
|
// +-----------------------------------------------------------------------+
|
||||||
// | tabs |
|
// | tabs |
|
||||||
// +-----------------------------------------------------------------------+
|
// +-----------------------------------------------------------------------+
|
||||||
@@ -117,6 +119,7 @@ $template->assign(
|
|||||||
'protected_users' => implode(',', array_unique($protected_users)),
|
'protected_users' => implode(',', array_unique($protected_users)),
|
||||||
'password_protected_users' => implode(',', array_unique($password_protected_users)),
|
'password_protected_users' => implode(',', array_unique($password_protected_users)),
|
||||||
'guest_user' => $conf['guest_id'],
|
'guest_user' => $conf['guest_id'],
|
||||||
|
'filter_group' => (isset($_GET['group']) ? $_GET['group'] : null),
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,8 @@ check_status(ACCESS_ADMINISTRATOR);
|
|||||||
check_input_parameter('iDisplayStart', $_REQUEST, false, PATTERN_ID);
|
check_input_parameter('iDisplayStart', $_REQUEST, false, PATTERN_ID);
|
||||||
check_input_parameter('iDisplayLength', $_REQUEST, false, PATTERN_ID);
|
check_input_parameter('iDisplayLength', $_REQUEST, false, PATTERN_ID);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
* Easy set variables
|
* Easy set variables
|
||||||
*/
|
*/
|
||||||
@@ -91,11 +93,39 @@ if ( isset( $_REQUEST['iSortCol_0'] ) )
|
|||||||
$sWhere = "";
|
$sWhere = "";
|
||||||
if ( $_REQUEST['sSearch'] != "" )
|
if ( $_REQUEST['sSearch'] != "" )
|
||||||
{
|
{
|
||||||
$sWhere = "WHERE (";
|
$user_ids = null;
|
||||||
for ( $i=0 ; $i<count($aColumns) ; $i++ )
|
|
||||||
|
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 = substr_replace( $sWhere, "", -3 );
|
||||||
$sWhere .= ')';
|
$sWhere .= ')';
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user