diff options
author | lpsolit%gmail.com <> | 2009-08-01 12:37:49 +0000 |
---|---|---|
committer | lpsolit%gmail.com <> | 2009-08-01 12:37:49 +0000 |
commit | 0c264ec3efe970c1534b2df495efe900f7b274bb (patch) | |
tree | 4fac54a34ff2444849229dbf68496fa079242ef4 | |
parent | Bug 507802: Release Notes for Bugzilla 3.4.1 (diff) | |
download | bugzilla-0c264ec3efe970c1534b2df495efe900f7b274bb.tar.gz bugzilla-0c264ec3efe970c1534b2df495efe900f7b274bb.tar.bz2 bugzilla-0c264ec3efe970c1534b2df495efe900f7b274bb.zip |
Bug 507389: [SECURITY] Users can see all products when editing bugs - Patch by Frédéric Buclin <LpSolit@gmail.com> r=mkanat a=LpSolit
-rw-r--r-- | t/008filter.t | 2 | ||||
-rw-r--r-- | template/en/default/bug/edit.html.tmpl | 8 | ||||
-rw-r--r-- | template/en/default/bug/field.html.tmpl | 6 |
3 files changed, 14 insertions, 2 deletions
diff --git a/t/008filter.t b/t/008filter.t index 9a53ced93..ec9e21f51 100644 --- a/t/008filter.t +++ b/t/008filter.t @@ -211,7 +211,7 @@ sub directive_ok { return 1 if $directive =~ /^(time2str|url)\(/; # Safe Template Toolkit virtual methods - return 1 if $directive =~ /\.(length$|size$|push\(|delete\()/; + return 1 if $directive =~ /\.(length$|size$|push\(|unshift\(|delete\()/; # Special Template Toolkit loop variable return 1 if $directive =~ /^loop\.(index|count)$/; diff --git a/template/en/default/bug/edit.html.tmpl b/template/en/default/bug/edit.html.tmpl index de89f1b8e..3c45a0813 100644 --- a/template/en/default/bug/edit.html.tmpl +++ b/template/en/default/bug/edit.html.tmpl @@ -371,8 +371,16 @@ [%#############%] <tr> + [% IF bug.check_can_change_field('product', 0, 1) %] + [% prod_list = user.get_enterable_products %] + [% IF NOT user.can_enter_product(bug.product) %] + [% prod_list.unshift(bug.product_obj) %] + [% END %] + [% END %] + [% INCLUDE bug/field.html.tmpl bug = bug, field = select_fields.product, + override_legal_values = prod_list desc_url = 'describecomponents.cgi', value = bug.product editable = bug.check_can_change_field('product', 0, 1) %] </tr> diff --git a/template/en/default/bug/field.html.tmpl b/template/en/default/bug/field.html.tmpl index d02f9801b..b7c45511f 100644 --- a/template/en/default/bug/field.html.tmpl +++ b/template/en/default/bug/field.html.tmpl @@ -23,6 +23,7 @@ [%# INTERFACE: # field: a Bugzilla::Field object # value: The value of the field for this bug. + # override_legal_values (optional): The list of legal values, for select fields. # editable: Whether the field should be displayed as an editable # <input> or as just the plain text of its value. # allow_dont_change: display the --do_not_change-- option for select fields. @@ -130,7 +131,10 @@ [% dontchange FILTER html %] </option> [% END %] - [% FOREACH legal_value = field.legal_values %] + [% IF NOT override_legal_values %] + [% override_legal_values = field.legal_values %] + [% END %] + [% FOREACH legal_value = override_legal_values %] [% SET control_value = legal_value.visibility_value %] [% SET control_field = field.value_field %] <option value="[% legal_value.name FILTER html %]" |