summaryrefslogtreecommitdiffstats
path: root/Bugzilla/Search.pm
diff options
context:
space:
mode:
authorFrédéric Buclin <LpSolit@gmail.com>2012-10-10 01:05:42 +0200
committerFrédéric Buclin <LpSolit@gmail.com>2012-10-10 01:05:42 +0200
commit2ee94066c3716564631bb1b02bc889357d0d06dd (patch)
treefb1c740dc2ea2d345cef983826163c62b12b31f8 /Bugzilla/Search.pm
parent75c4e8ff9e17ecc195cbd67274bbf8feb05391dc (diff)
downloadbugzilla-2ee94066c3716564631bb1b02bc889357d0d06dd.tar.gz
bugzilla-2ee94066c3716564631bb1b02bc889357d0d06dd.tar.xz
Bug 448815: Support pronouns for the "changed by" field in boolean charts
r=dkl a=LpSolit
Diffstat (limited to 'Bugzilla/Search.pm')
-rw-r--r--Bugzilla/Search.pm15
1 files changed, 12 insertions, 3 deletions
diff --git a/Bugzilla/Search.pm b/Bugzilla/Search.pm
index d4236d578..3805cd2ad 100644
--- a/Bugzilla/Search.pm
+++ b/Bugzilla/Search.pm
@@ -2154,6 +2154,15 @@ sub _contact_exact_group {
}
}
+sub _get_user_id {
+ my ($self, $value) = @_;
+
+ if ($value =~ /^%\w+%$/) {
+ return pronoun($value, $self->_user);
+ }
+ return login_to_id($value, THROW_ERROR);
+}
+
#####################################################################
# Search Functions
#####################################################################
@@ -2284,7 +2293,7 @@ sub _long_desc_changedby {
my $table = "longdescs_$chart_id";
push(@$joins, { table => 'longdescs', as => $table });
- my $user_id = login_to_id($value, THROW_ERROR);
+ my $user_id = $self->_get_user_id($value);
$args->{term} = "$table.who = $user_id";
}
@@ -2380,7 +2389,7 @@ sub _work_time_changedby {
my $table = "longdescs_$chart_id";
push(@$joins, { table => 'longdescs', as => $table });
- my $user_id = login_to_id($value, THROW_ERROR);
+ my $user_id = $self->_get_user_id($value);
$args->{term} = "$table.who = $user_id AND $table.work_time != 0";
}
@@ -2829,7 +2838,7 @@ sub _changedby {
|| ThrowCodeError("invalid_field_name", { field => $field });
my $field_id = $field_object->id;
my $table = "act_${field_id}_$chart_id";
- my $user_id = login_to_id($value, THROW_ERROR);
+ my $user_id = $self->_get_user_id($value);
my $join = {
table => 'bugs_activity',
as => $table,