[Rt-commit] rt branch, 4.4/search-disabled-users2, created. rt-4.4.4-535-g8fe46a8d40

Jim Brandt jbrandt at bestpractical.com
Thu Jun 10 11:35:38 EDT 2021


The branch, 4.4/search-disabled-users2 has been created
        at  8fe46a8d40808cb8df8a47e2b055d63798b56937 (commit)

- Log -----------------------------------------------------------------
commit 8fe46a8d40808cb8df8a47e2b055d63798b56937
Author: Steven Burr <steve at bestpractical.com>
Date:   Mon Nov 23 15:18:13 2020 -0500

    Add ability to search for disabled users
    
    The user search form in the admin section supports a single checkbox
    to indicate whether disabled users should be included in search
    results. This makes it possible to include disabled users, but
    impossible to exclude enabled users.
    
    This change replaces the single checkbox with a pair of checkboxes to
    independently indicate whether enabled, disabled, or both types of
    users should be included. If neither checkbox is selected, rather than
    always returning zero results, the include enabled checkbox is
    automatically ticked for improved DWIM behavior.

diff --git a/share/html/Admin/Users/index.html b/share/html/Admin/Users/index.html
index 1785813892..01940611ab 100644
--- a/share/html/Admin/Users/index.html
+++ b/share/html/Admin/Users/index.html
@@ -109,10 +109,10 @@ jQuery(function(){
                 UserString      => $UserString3,
             &></td></tr>
 </table>
-<input type="checkbox" class="checkbox" id="FindDisabledUsers" name="FindDisabledUsers" value="1" <% $FindDisabledUsers? 'checked="checked"': '' %> />
-<label for="FindDisabledUsers"><&|/l&>Include disabled users in search.</&></label>
+<p>Include all <input type="checkbox" class="checkbox" id="FindEnabledUsers" name="FindEnabledUsers" value="1" <% $FindEnabledUsers ? 'checked="checked"' : '' %> /><label for="FindEnabledUsers"><&|/l&>Enabled users</&></label>
+<input type="checkbox" class="checkbox" id="FindDisabledUsers" name="FindDisabledUsers" value="1" <% $FindDisabledUsers ? 'checked="checked"' : '' %> /><label for="FindDisabledUsers"><&|/l&>Disabled users</&></label>
+</p>
 % $m->callback( %ARGS, UsersObj => $users, CallbackName => 'InUsersAdminForm' );
-
 <br />
 <div align="right"><input type="submit" class="button" value="<&|/l&>Go!</&>" name="Go" /></div>
 </form>
@@ -131,7 +131,7 @@ my %collection_list_args = (
     Format => $Format,
     Collection => $users,
     AllowSorting => 1,
-    PassArguments => [qw(Format Rows Page Order OrderBy UserString UserOp UserField UserString2 UserOp2 UserField2 UserString3 UserOp3 UserField3 IdLike EmailLike FindDisabledUsers IncludeSystemGroups)],
+    PassArguments => [qw(Format Rows Page Order OrderBy UserString UserOp UserField UserString2 UserOp2 UserField2 UserString3 UserOp3 UserField3 IdLike EmailLike FindDisabledUsers FindEnabledUsers IncludeSystemGroups)],
 );
 </%perl>
 
@@ -143,7 +143,18 @@ my %collection_list_args = (
 <%INIT>
 my $caption;
 my $users = RT::Users->new( $session{'CurrentUser'} );
-$users->FindAllRows if $FindDisabledUsers;
+
+if ( $FindEnabledUsers ) {
+    $FindDisabledUsers ? $users->FindAllRows : $users->LimitToEnabled;
+}
+else {
+    if ( not $FindDisabledUsers ) {
+        # If both FindEnabled and FindDisabled are false, there are no results,
+        # so set FindEnabled as a default
+        $FindEnabledUsers = 1;
+    }
+    $FindDisabledUsers ? $users->LimitToDeleted : $users->LimitToEnabled;
+}
 
 $m->callback( UsersObj => $users, ARGSRef => \%ARGS, CallbackName => 'Initial' );
 
@@ -241,7 +252,7 @@ $UserOp3 => undef
 $UserField3 => 'Name'
 $IdLike => undef
 $EmailLike => undef
-
 $FindDisabledUsers => 0
+$FindEnabledUsers => undef
 $IncludeSystemGroups => 'Privileged'
 </%ARGS>

-----------------------------------------------------------------------


More information about the rt-commit mailing list