[Rt-commit] rt branch, 4.0/case-sensitive-user-searches, created. rt-4.0.2-113-g9bf1d68

Ruslan Zakirov ruz at bestpractical.com
Mon Sep 26 19:46:25 EDT 2011


The branch, 4.0/case-sensitive-user-searches has been created
        at  9bf1d68666d02f45d3c01b4b9f22237f6a291d83 (commit)

- Log -----------------------------------------------------------------
commit 1ef5c8a4f0b429893532d1ee01cefeadc4ed0331
Author: Ruslan Zakirov <ruz at bestpractical.com>
Date:   Mon Sep 26 20:13:48 2011 +0400

    make direct searches on users table case insensitive
    
    Most columns in users table are text and we by default
    should be case insensitive. Affects auto completion,
    People tab and admin UI. Important on Oracle and Pg.

diff --git a/lib/RT/Users.pm b/lib/RT/Users.pm
index c9cc78d..ba56a38 100644
--- a/lib/RT/Users.pm
+++ b/lib/RT/Users.pm
@@ -220,6 +220,13 @@ sub LimitToUnprivileged {
 }
 
 
+sub Limit {
+    my $self = shift;
+    my %args = @_;
+    $args{'CASESENSITIVE'} = 0 unless exists $args{'CASESENSITIVE'};
+    return $self->SUPER::Limit( %args );
+}
+
 =head2 WhoHaveRight { Right => 'name', Object => $rt_object , IncludeSuperusers => undef, IncludeSubgroupMembers => undef, IncludeSystemRights => undef, EquivObjects => [ ] }
 
 
diff --git a/share/html/Admin/Users/index.html b/share/html/Admin/Users/index.html
index 178fd1c..fa25c89 100755
--- a/share/html/Admin/Users/index.html
+++ b/share/html/Admin/Users/index.html
@@ -124,7 +124,6 @@ if ( defined($UserString) && length $UserString ) {
             FIELD => $UserField,
             OPERATOR => $UserOp,
             VALUE => $UserString,
-            CASESENSITIVE => 0,
         ); 
     }
     RT::Interface::Web::Redirect(RT->Config->Get('WebURL')."Admin/Users/Modify.html?id=".$users->First->id)

commit 9bf1d68666d02f45d3c01b4b9f22237f6a291d83
Author: Ruslan Zakirov <ruz at bestpractical.com>
Date:   Tue Sep 27 03:43:23 2011 +0400

    test case sensitivity in a few places
    
    everything related to user searches, mostly
    related to Pg and Oracle

diff --git a/t/web/case-sensitivity.t b/t/web/case-sensitivity.t
new file mode 100644
index 0000000..8cf14a1
--- /dev/null
+++ b/t/web/case-sensitivity.t
@@ -0,0 +1,59 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use RT::Test tests => 14;
+
+my $q = RT::Test->load_or_create_queue( Name => 'General' );
+ok $q && $q->id, 'loaded or created queue';
+
+my ($root, $root_id);
+{
+    $root = RT::User->new( RT->SystemUser );
+    $root->Load('root');
+    ok $root_id = $root->id, 'found root';
+}
+
+my ($baseurl, $m) = RT::Test->started_ok;
+$m->login;
+
+# test users auto completer
+{
+    $m->get_ok('/Helpers/Autocomplete/Users?term=eNo');
+    require JSON;
+    is_deeply(
+        JSON::from_json( $m->content ),
+        [{"value" =>  "root\@localhost","label" => "Enoch Root"}]
+    );
+}
+
+# test ticket's People page
+{
+    my $ticket = RT::Test->create_ticket( Queue => $q->id );
+    ok $ticket && $ticket->id, "created ticket";
+
+    $m->goto_ticket( $ticket->id );
+    $m->follow_link_ok( {text => 'People'} );
+    $m->form_number(3);
+    $m->select( UserField => 'RealName' );
+    $m->field( UserString => 'eNo' );
+    $m->click('OnlySearchForPeople');
+
+    my $form = $m->form_number(3);
+    my $input = $form->find_input('Ticket-AddWatcher-Principal-'. $root->id );
+    ok $input, 'input is there';
+}
+
+# test users' admin UI
+{
+    $m->get_ok('/Admin/Users/');
+
+    $m->form_number(4);
+    $m->select( UserField => 'RealName' );
+    $m->field( UserString => 'eNo' );
+    $m->submit;
+
+    like $m->uri, qr{\QAdmin/Users/Modify.html?id=$root_id\E};
+}
+

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


More information about the Rt-commit mailing list