diff options
-rw-r--r-- | Bugzilla/User.pm | 2 | ||||
-rw-r--r-- | Bugzilla/WebService/Bug.pm | 53 | ||||
-rwxr-xr-x | buglist.cgi | 2 | ||||
-rw-r--r-- | docs/en/xml/administration.xml | 2 | ||||
-rw-r--r-- | template/en/default/global/user-error.html.tmpl | 30 |
5 files changed, 71 insertions, 18 deletions
diff --git a/Bugzilla/User.pm b/Bugzilla/User.pm index f1803ac79..9261bd780 100644 --- a/Bugzilla/User.pm +++ b/Bugzilla/User.pm @@ -2115,7 +2115,7 @@ sub validate_password { my $complexity_level = Bugzilla->params->{password_complexity}; if ($complexity_level eq 'letters_numbers_specialchars') { ThrowUserError('password_not_complex') - if ($password !~ /\w/ || $password !~ /\d/ || $password !~ /[[:punct:]]/); + if ($password !~ /[[:alpha:]]/ || $password !~ /\d/ || $password !~ /[[:punct:]]/); } elsif ($complexity_level eq 'letters_numbers') { ThrowUserError('password_not_complex') if ($password !~ /[[:lower:]]/ || $password !~ /[[:upper:]]/ || $password !~ /\d/); diff --git a/Bugzilla/WebService/Bug.pm b/Bugzilla/WebService/Bug.pm index 34c16f99f..1b3138451 100644 --- a/Bugzilla/WebService/Bug.pm +++ b/Bugzilla/WebService/Bug.pm @@ -2335,6 +2335,59 @@ The same as L</get>. =back +=head2 possible_duplicates + +B<UNSTABLE> + +=over + +=item B<Description> + +Allows a user to find possible duplicate bugs based on a set of keywords +such as a user may use as a bug summary. Optionally the search can be +narrowed down to specific products. + +=item B<Params> + +=over + +=item C<summary> (string) B<Required> - A string of keywords defining +the type of bug you are trying to report. + +=item C<products> (array) - One or more product names to narrow the +duplicate search to. If omitted, all bugs are searched. + +=back + +=item B<Returns> + +The same as L</get>. + +Note that you will only be returned information about bugs that you +can see. Bugs that you can't see will be entirely excluded from the +results. So, if you want to see private bugs, you will have to first +log in and I<then> call this method. + +=item B<Errors> + +=over + +=item 50 (Param Required) + +You must specify a value for C<summary> containing a string of keywords to +search for duplicates. + +=back + +=item B<History> + +=over + +=item Added in Bugzilla B<4.0>. + +=back + +=back =head2 search diff --git a/buglist.cgi b/buglist.cgi index 9d259de5c..8646f4028 100755 --- a/buglist.cgi +++ b/buglist.cgi @@ -140,7 +140,7 @@ my $serverpush = && exists $ENV{'HTTP_USER_AGENT'} && $ENV{'HTTP_USER_AGENT'} =~ /Mozilla.[3-9]/ && (($ENV{'HTTP_USER_AGENT'} !~ /[Cc]ompatible/) || ($ENV{'HTTP_USER_AGENT'} =~ /MSIE 5.*Mac_PowerPC/)) - && $ENV{'HTTP_USER_AGENT'} !~ /WebKit/ + && $ENV{'HTTP_USER_AGENT'} !~ /(?:WebKit|Trident)/ && !$agent && !defined($cgi->param('serverpush')) || $cgi->param('serverpush'); diff --git a/docs/en/xml/administration.xml b/docs/en/xml/administration.xml index 844053996..8ba95da9e 100644 --- a/docs/en/xml/administration.xml +++ b/docs/en/xml/administration.xml @@ -1056,7 +1056,7 @@ <para> <emphasis>Login Name</emphasis>: This is generally the user's full email address. However, if you - have are using the <quote>emailsuffix</quote> parameter, this may + are using the <quote>emailsuffix</quote> parameter, this may just be the user's login name. Note that users can now change their login names themselves (to any valid email address). </para> diff --git a/template/en/default/global/user-error.html.tmpl b/template/en/default/global/user-error.html.tmpl index ce2dd8231..e85ecaada 100644 --- a/template/en/default/global/user-error.html.tmpl +++ b/template/en/default/global/user-error.html.tmpl @@ -1358,21 +1358,21 @@ [%+ constants.USER_PASSWORD_MIN_LENGTH FILTER html %] characters long. [% ELSIF error == "password_not_complex" %] - [% title = "Password Fails Requirements" %] - [% passregex = Param('password_complexity') %] - The password must contain at least one: - <ul> - [% IF passregex.search('letters') %] - <li>UPPERCASE letter</li> - <li>lowercase letter</li> - [% END %] - [% IF passregex.search('numbers') %] - <li>digit</li> - [% END %] - [% IF passregex.search('specialchars') %] - <li>special character</li> - [% END %] - </ul> + [% title = "Password Fails Requirements" %] + [% passregex = Param('password_complexity') %] + The password must contain at least one: + <ul> + [% IF passregex == 'letters_numbers_specialchars' %] + <li>letter</li> + <li>special character</li> + [% ELSIF passregex.search('letters') %] + <li>UPPERCASE letter</li> + <li>lowercase letter</li> + [% END %] + [% IF passregex.search('numbers') %] + <li>digit</li> + [% END %] + </ul> [% ELSIF error == "password_not_complex" %] [% title = "Password Fails Requirements" %] |