summaryrefslogtreecommitdiffstats
path: root/editusers.cgi
diff options
context:
space:
mode:
Diffstat (limited to 'editusers.cgi')
-rwxr-xr-xeditusers.cgi43
1 files changed, 30 insertions, 13 deletions
diff --git a/editusers.cgi b/editusers.cgi
index b7ce52b3e..e6d4fffe8 100755
--- a/editusers.cgi
+++ b/editusers.cgi
@@ -118,6 +118,9 @@ if ($action eq 'search') {
} elsif ($matchtype eq 'notregexp') {
$query .= $dbh->sql_not_regexp($expr, '?');
$matchstr = '.' unless $matchstr;
+ } elsif ($matchtype eq 'exact') {
+ $query .= $expr . ' = ?';
+ $matchstr = '.' unless $matchstr;
} else { # substr or unknown
$query .= $expr . ' like ?';
$matchstr = "%$matchstr%";
@@ -142,10 +145,17 @@ if ($action eq 'search') {
$vars->{'users'} = $dbh->selectall_arrayref($query,
{'Slice' => {}},
@bindValues);
+
}
- $template->process('admin/users/list.html.tmpl', $vars)
- || ThrowTemplateError($template->error());
+ if ($matchtype eq 'exact' && scalar(@{$vars->{'users'}}) == 1) {
+ $otherUserID = $vars->{'users'}[0]->{'userid'};
+ $otherUser = new Bugzilla::User($otherUserID);
+ edit_processing();
+ } else {
+ $template->process('admin/users/list.html.tmpl', $vars)
+ || ThrowTemplateError($template->error());
+ }
###########################################################################
} elsif ($action eq 'add') {
@@ -198,18 +208,8 @@ if ($action eq 'search') {
###########################################################################
} elsif ($action eq 'edit') {
- $otherUser
- || ThrowCodeError('invalid_user_id', {'userid' => $cgi->param('userid')});
-
- $user->can_see_user($otherUser)
- || ThrowUserError('auth_failure', {reason => "not_visible",
- action => "modify",
- object => "user"});
- userDataToVars($otherUserID);
-
- $template->process('admin/users/edit.html.tmpl', $vars)
- || ThrowTemplateError($template->error());
+ edit_processing();
###########################################################################
} elsif ($action eq 'update') {
@@ -778,3 +778,20 @@ sub userDataToVars {
$vars->{'permissions'}{${$_}[0]}{'indirectbless'} = 1;
}
}
+
+sub edit_processing
+{
+ $otherUser
+ || ThrowCodeError('invalid_user_id', {'userid' => $cgi->param('userid')});
+
+ $user->can_see_user($otherUser)
+ || ThrowUserError('auth_failure', {reason => "not_visible",
+ action => "modify",
+ object => "user"});
+
+ userDataToVars($otherUserID);
+
+ $template->process('admin/users/edit.html.tmpl', $vars)
+ || ThrowTemplateError($template->error());
+
+}