diff options
-rwxr-xr-x | attachment.cgi | 2 | ||||
-rwxr-xr-x | describecomponents.cgi | 5 | ||||
-rwxr-xr-x | duplicates.cgi | 4 | ||||
-rwxr-xr-x | post_bug.cgi | 4 | ||||
-rwxr-xr-x | process_bug.cgi | 3 | ||||
-rwxr-xr-x | quips.cgi | 2 | ||||
-rw-r--r-- | t/002goodperl.t | 28 | ||||
-rw-r--r-- | template/en/default/global/user-error.html.tmpl | 21 | ||||
-rwxr-xr-x | userprefs.cgi | 3 |
9 files changed, 60 insertions, 12 deletions
diff --git a/attachment.cgi b/attachment.cgi index 43b2b4940..45538ae23 100755 --- a/attachment.cgi +++ b/attachment.cgi @@ -142,7 +142,7 @@ sub validateID my ($bugid, $isprivate) = FetchSQLData(); ValidateBugID($bugid); if (($isprivate > 0 ) && Param("insidergroup") && !(UserInGroup(Param("insidergroup")))) { - ThrowUserError("You are not permitted access to this attachment."); + ThrowUserError("attachment_access_denied"); } } diff --git a/describecomponents.cgi b/describecomponents.cgi index 9edb5dfa0..be3be4b9f 100755 --- a/describecomponents.cgi +++ b/describecomponents.cgi @@ -87,7 +87,10 @@ my $product = $::FORM{'product'}; # cannot get any other information about that product. my $product_id = get_product_id($product); -ThrowUserError("The product name is invalid.") unless $product_id; +if (!$product_id) { + $::vars->{'product'} = $product; + ThrowUserError("invalid_product_name"); +} # Make sure the user is authorized to access this product. if (Param("usebuggroups") && GroupExists($product)) { diff --git a/duplicates.cgi b/duplicates.cgi index 285c65717..5196027ac 100755 --- a/duplicates.cgi +++ b/duplicates.cgi @@ -65,8 +65,8 @@ my $product_id; if ($product) { $product_id = get_product_id($product); if (!$product_id) { - ThrowUserError("The product <tt>" . html_quote($product) . - "</tt> does not exist"); + $vars->{'product'} = $product; + ThrowUserError("invalid_product_name"); } } diff --git a/post_bug.cgi b/post_bug.cgi index bab55a9ac..b7fdf66d5 100755 --- a/post_bug.cgi +++ b/post_bug.cgi @@ -71,8 +71,8 @@ ValidateComment($comment); my $product = $::FORM{'product'}; my $product_id = get_product_id($product); if (!$product_id) { - ThrowUserError("Sorry, the product <tt>" . html_quote($product) . - "</tt> does not exist"); + $vars->{'product'} = $product; + ThrowUserError("invalid_product_name"); } # Set cookies diff --git a/process_bug.cgi b/process_bug.cgi index 59bb83e0e..ab65c0da5 100755 --- a/process_bug.cgi +++ b/process_bug.cgi @@ -558,8 +558,7 @@ if ($::FORM{'product'} ne $::dontchange) { my $comp_id; # Remember, can't use this for mass changes if ($::FORM{'component'} ne $::dontchange) { if (!defined $prod_id) { - ThrowUserError("You cannot change the component from a list of bugs " . - "covering more than one product"); + ThrowUserError("no_component_change_for_multiple_products"); } $comp_id = get_component_id($prod_id, $::FORM{'component'}); @@ -63,7 +63,7 @@ if ($action eq "add") { } if (Param('enablequips') ne "on") { - ThrowUserError("This site does not permit the addition of new quips"); + ThrowUserError("no_new_quips"); exit(); } diff --git a/t/002goodperl.t b/t/002goodperl.t index 1431e7fe8..973a5fb88 100644 --- a/t/002goodperl.t +++ b/t/002goodperl.t @@ -44,7 +44,7 @@ use lib 't'; use Support::Files; -use Test::More tests => (scalar(@Support::Files::testitems) * 2); +use Test::More tests => (scalar(@Support::Files::testitems) * 3); my @testitems = @Support::Files::testitems; # get the files to test. @@ -116,4 +116,30 @@ foreach my $file (@testitems) { } } +# Check to see that all error messages use tags (for l10n reasons.) +foreach my $file (@testitems) { + $file =~ s/\s.*$//; # nuke everything after the first space (#comment) + next if (!$file); # skip null entries + if (! open (FILE, $file)) { + ok(0,"could not open $file --WARNING"); + next; + } + my $lineno = 0; + my $error = 0; + + while (my $file_line = <FILE>) { + $lineno++; + if ($file_line =~ /Throw.*Error\("(.*?)"/) { + if ($1 =~ /\s/) { + ok(0,"$file has a Throw*Error call on line $lineno + which doesn't use a tag --ERROR"); + $error = 1; + } + } + } + + ok(1,"$file uses Throw*Error calls correctly") if !$error; + + close(FILE); +} exit 0; diff --git a/template/en/default/global/user-error.html.tmpl b/template/en/default/global/user-error.html.tmpl index 64b354219..4edacf2c8 100644 --- a/template/en/default/global/user-error.html.tmpl +++ b/template/en/default/global/user-error.html.tmpl @@ -75,6 +75,10 @@ Bug aliases cannot be longer than 20 characters. Please choose a shorter alias. + [% ELSIF error == "attachment_access_denied" %] + [% title = "Access Denied" %] + You are not permitted access to this attachment. + [% ELSIF error == "buglist_parameters_required" %] [% title = "Parameters Required" %] [% url = "query.cgi" %] @@ -155,6 +159,10 @@ [% title = "Invalid Bug ID" %] The bug id [% bug_id FILTER html %] is invalid. + [% ELSIF error == "invalid_product_name" %] + [% title = "Invalid Product Name" %] + The product name '[% product FILTER html %]' is invalid or does not exist. + [% ELSIF error == "invalid_username" %] [% title = "Invalid Username" %] The name <tt>[% name FILTER html %]</tt> is not a valid username. @@ -182,6 +190,11 @@ [% title = "No Bugs Chosen" %] You apparently didn't choose any bugs to modify. + [% ELSIF error == "no_component_change_for_multiple_products" %] + [% title = "Action Not Permitted" %] + You cannot change the component for a list of bugs covering more than + one product. + [% ELSIF error == "no_dupe_stats" %] [% title = "Cannot Find Duplicate Statistics" %] There are no duplicate statistics for today ([% today %]) or yesterday. @@ -200,6 +213,10 @@ There are no duplicate statistics for today ([% today %]), and an error occurred opening yesterday's dupes file: [% error_msg FILTER html %]. + [% ELSIF error == "no_new_quips" %] + [% title = "No New Quips" %] + This site does not permit the addition of new quips. + [% ELSIF error == "page_not_found" %] [% title = "Page not found" %] The page you requested cannot be found. @@ -214,6 +231,10 @@ [% title = "Unknown Keyword" %] <code>[% keyword FILTER html %]</code> is not a known keyword. The legal keyword names are <a href="describekeywords.cgi">listed here</a>. + + [% ELSIF error == "unknown_tab" %] + [% title = "Unknown Tab" %] + <code>[% current_tab_name FILTER html %]</code> is not a legal tab name. [% ELSE %] [%# Cope with legacy calling convention, where "error" was the string diff --git a/userprefs.cgi b/userprefs.cgi index 33b377574..808aebf40 100755 --- a/userprefs.cgi +++ b/userprefs.cgi @@ -395,8 +395,7 @@ SWITCH: for ($current_tab_name) { DoPermissions(); last SWITCH; }; - ThrowUserError("Unknown tab <code>" . html_quote($current_tab_name) - . "</code>"); + ThrowUserError("current_tab_name"); } # Generate and return the UI (HTML page) from the appropriate template. |