[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