summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--extensions/MozProjectReview/Extension.pm62
-rw-r--r--extensions/MozProjectReview/template/en/default/bug/create/comment-moz-project-review-data-compliance.txt.tmpl28
-rw-r--r--extensions/MozProjectReview/template/en/default/bug/create/create-moz-project-review.html.tmpl121
-rw-r--r--extensions/MozProjectReview/web/js/moz_project_review.js27
4 files changed, 137 insertions, 101 deletions
diff --git a/extensions/MozProjectReview/Extension.pm b/extensions/MozProjectReview/Extension.pm
index 215927146..a5f4e0b8c 100644
--- a/extensions/MozProjectReview/Extension.pm
+++ b/extensions/MozProjectReview/Extension.pm
@@ -46,13 +46,11 @@ sub post_bug_after_creation {
'legal_cc' => { 'type' => 'multi' }
});
- my ($do_sec_review, $do_legal, $do_finance, $do_privacy_vendor,
- $do_privacy_tech, $do_privacy_policy);
+ my ($do_sec_review, $do_legal, $do_finance, $do_data_compliance);
if ($params->{'mozilla_data'} eq 'Yes') {
$do_legal = 1;
- $do_privacy_policy = 1;
- $do_privacy_tech = 1;
+ $do_data_compliance = 1;
$do_sec_review = 1;
}
@@ -62,7 +60,7 @@ sub post_bug_after_creation {
}
if ($params->{'data_access'} eq 'Yes') {
- $do_privacy_policy = 1;
+ $do_data_compliance = 1;
$do_legal = 1;
$do_sec_review = 1;
}
@@ -70,7 +68,7 @@ sub post_bug_after_creation {
if ($params->{'data_access'} eq 'Yes'
&& $params->{'privacy_policy_vendor_user_data'} eq 'Yes')
{
- $do_privacy_vendor = 1;
+ $do_data_compliance = 1;
}
if ($params->{'vendor_cost'} eq '> $25,000'
@@ -81,9 +79,8 @@ sub post_bug_after_creation {
}
}
- my ($sec_review_bug, $legal_bug, $finance_bug, $privacy_vendor_bug,
- $privacy_tech_bug, $privacy_policy_bug, $error, @dep_comment,
- @dep_errors, @send_mail);
+ my ($sec_review_bug, $legal_bug, $finance_bug, $data_compliance_bug,
+ $error, @dep_comment, @dep_errors, @send_mail);
# Common parameters always passed to _file_child_bug
# bug_data and template_suffix will be different for each bug
@@ -161,55 +158,22 @@ sub post_bug_after_creation {
_file_child_bug($child_params);
}
- if ($do_privacy_tech) {
+ if ($do_data_compliance) {
$child_params->{'bug_data'} = {
- short_desc => 'Privacy-Technical Review: ' . $bug->short_desc,
- product => 'mozilla.org',
- component => 'Security Assurance: Review Request',
- bug_severity => 'normal',
- priority => '--',
- keywords => 'privacy-review-needed',
- groups => [ 'mozilla-employee-confidential' ],
- op_sys => 'All',
- rep_platform => 'All',
- version => 'other',
- blocked => $bug->bug_id,
- };
- $child_params->{'template_suffix'} = 'privacy-tech';
- _file_child_bug($child_params);
- }
-
- if ($do_privacy_policy) {
- $child_params->{'bug_data'} = {
- short_desc => 'Privacy-Policy Review: ' . $bug->short_desc,
- product => 'Privacy',
- component => 'Product Review',
- bug_severity => 'normal',
- priority => '--',
- groups => [ 'mozilla-employee-confidential' ],
- op_sys => 'All',
- rep_platform => 'All',
- version => 'unspecified',
- blocked => $bug->bug_id,
- };
- $child_params->{'template_suffix'} = 'privacy-policy';
- _file_child_bug($child_params);
- }
-
- if ($do_privacy_vendor) {
- $child_params->{'bug_data'} = {
- short_desc => 'Privacy / Vendor Review: ' . $bug->short_desc,
- product => 'Privacy',
- component => 'Vendor Review',
+ short_desc => 'Data Compliance Review: ' . $bug->short_desc,
+ product => 'Data Compliance',
+ component => 'General',
bug_severity => 'normal',
priority => '--',
+ bug_severity => $params->{data_comp_urgency},
groups => [ 'mozilla-employee-confidential' ],
op_sys => 'All',
rep_platform => 'All',
version => 'unspecified',
+ cf_due_date => $params->{release_date},
blocked => $bug->bug_id,
};
- $child_params->{'template_suffix'} = 'privacy-vendor';
+ $child_params->{'template_suffix'} = 'data-compliance';
_file_child_bug($child_params);
}
diff --git a/extensions/MozProjectReview/template/en/default/bug/create/comment-moz-project-review-data-compliance.txt.tmpl b/extensions/MozProjectReview/template/en/default/bug/create/comment-moz-project-review-data-compliance.txt.tmpl
new file mode 100644
index 000000000..889543c0c
--- /dev/null
+++ b/extensions/MozProjectReview/template/en/default/bug/create/comment-moz-project-review-data-compliance.txt.tmpl
@@ -0,0 +1,28 @@
+[%# This Source Code Form is subject to the terms of the Mozilla Public
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ #
+ # This Source Code Form is "Incompatible With Secondary Licenses", as
+ # defined by the Mozilla Public License, v. 2.0.
+ #%]
+
+[% USE Bugzilla %]
+[% cgi = Bugzilla.cgi %]
+
+> Request Type
+[%+ cgi.param('data_comp_request_type') %]
+
+> Area
+[%+ cgi.param('data_comp_area') %]
+
+> Description
+[%+ cgi.param('data_comp_desc') %]
+
+> Does this request involve a change in data collection or handling?
+[%+ cgi.param('data_comp_handling_change') %]
+
+> Does this request involve a change in to the business unit's data practices?
+[%+ cgi.param('data_comp_practice_change') %]
+
+> Other Information
+[%+ cgi.param('data_comp_other') || "None" %]
diff --git a/extensions/MozProjectReview/template/en/default/bug/create/create-moz-project-review.html.tmpl b/extensions/MozProjectReview/template/en/default/bug/create/create-moz-project-review.html.tmpl
index 0dd3da5a8..d3a2a7253 100644
--- a/extensions/MozProjectReview/template/en/default/bug/create/create-moz-project-review.html.tmpl
+++ b/extensions/MozProjectReview/template/en/default/bug/create/create-moz-project-review.html.tmpl
@@ -323,60 +323,109 @@
</div>
</div>
- <div id="privacy_policy_project_questions" class="bz_default_hidden">
- <div class="header">Privacy (Policy/Project)</div>
+ <div id="data_compliance_questions" class="bz_default_hidden">
+ <div class="header">Data Compliance</div>
+
+ <div id="data_comp_request_type_row" class="field_row">
+ <span class="field_label required">Type of request</span>
+ <span class="field_data">
+ <select id="data_comp_request_type" name="data_comp_request_type">
+ <option value="">-- Select --</option>
+ <option value="General">General</option>
+ <option value="Data Compliance">Data Compliance</option>
+ <option value="Vendor Review">Vendor Review</option>
+ <option value="Privacy Policy">Privacy Policy</option>
+ <option value="Other">Other</option>
+ </select>
+ </span>
+ </div>
- <div id="privacy_policy_project_link_row" class="field_row">
- <span class="field_label">Is there a privacy policy for<br>this new feature/product?:</span>
+ <div class="data_comp_area_row">
+ <span class="field_label required">Area</span>
<span class="field_data">
- <div class="field_description">If yes, please enter a url to the policy.</div>
- <input type="text" name="privacy_policy_project_link" id="privacy_policy_project_link" size="60">
+ <select id="data_comp_area" name="data_comp_area">
+ <option value="">-- Select --</option>
+ <option value="Firefox">Firefox</option>
+ <option value="Cloud Services">Cloud Services</option>
+ <option value="FxOS">FxOS</option>
+ <option value="Foundation">Foundation</option>
+ <option value="Engagement">Engagement</option>
+ <option value="IT">IT</option>
+ <option value="Content Services">Content Services</option>
+ <option value="Platform">Platform</option>
+ <option value="Other">Other</option>
+ </select>
</span>
</div>
- <div id="privacy_policy_project_assistance_row" class="field_row">
- <span class="field_label required">What assistance do you need from the privacy team (if any)?:</span>
+ <div id="data_comp_description_row">
+ <span class="field_label required">Description</span>
<span class="field_data">
- <textarea name="privacy_policy_project_assistance" id="privacy_policy_project_assistance" rows="10" cols="80"></textarea>
+ <div class="field_description">
+ Describe the data compliance issue: If your request involves changes
+ or additional data collection, please describe that collection,
+ including specific fields, where the data will be stored, how long it
+ will be stored, and who will have access to the data.
+ </div>
+ <textarea name="data_comp_desc" id="data_comp_desc" rows="10" cols="60"
+ class="wide"></textarea>
</span>
</div>
- </div>
- <div id="privacy_policy_vendor_questions" class="bz_default_hidden">
- <div class="header">Privacy (Policy/Vendor)</div>
+ <div id="data_comp_urgency_row">
+ <span class="field_label required">Urgency</span>
+ <span class="field_data">
+ <select id="data_comp_urgency" name="data_comp_urgency">
+ <option value="">-- Select --</option>
+ <option value="blocker">blocker</option>
+ <option value="critical">critical</option>
+ <option value="major">major</option>
+ <option value="normal">normal</option>
+ <option value="minor">minor</option>
+ <option value="trivial">trivial</option>
+ <option value="enhancement">enhancement</option>
+ </select>
+ </span>
+ </div>
- <div id="privacy_policy_vendor_user_data_row" class="field_row">
- <span class="field_label">Privacy Policy:</span>
+ <div id="data_comp_handling_change_row">
+ <span class="field_label required">Collection/Handling Change</span>
<span class="field_data">
- <div class="field_description">Will the vendor have access to Mozilla (customer, contributor, user, employee) data?</div>
- <select name="privacy_policy_vendor_user_data" id="privacy_policy_vendor_user_data">
- <option value="">Select One</option>
+ <div class="field_description">
+ Does this request involve a change in data collection or handling?
+ </div>
+ <select id="data_comp_handling_change" name="data_comp_handling_change">
+ <option value="">-- Select --</option>
<option value="Yes">Yes</option>
<option value="No">No</option>
</select>
</span>
</div>
- <div id="privacy_policy_vendor_extra" class="bz_default_hidden">
- <div id="privacy_policy_vendor_link_row" class="field_row">
- <span class="field_label">Vendor's Privacy Policy:</span>
- <span class="field_data">
- <div class="field_description">Please provide link to vendor's privacy policy</div>
- <input type="text" name="privacy_policy_vendor_link" id="privacy_policy_vendor_link" size="60">
- </span>
- </div>
+ <div id="data_comp_practice_change_row">
+ <span class="field_label required">Practice Change</span>
+ <span class="field_data">
+ <div class="field_description">
+ Does this request involve a change in to the business unit's data practices?
+ </div>
+ <select id="data_comp_practice_change" name="data_comp_practice_change">
+ <option value="">-- Select --</option>
+ <option value="Yes">Yes</option>
+ <option value="No">No</option>
+ </select>
+ </span>
+ </div>
- <div id="privacy_policy_vendor_questionnaire_row" class="field_row">
- <span class="field_label">Privacy Questionnaire:</span>
- <span class="field_data">
- <div class="field_description">Has vendor completed Mozilla Vendor Privacy Questionnaire?</div>
- <select name="privacy_policy_vendor_questionnaire" id="privacy_policy_vendor_questionnaire">
- <option value="">Select One</option>
- <option value="Yes">Yes</option>
- <option value="No">No</option>
- </select>
- </span>
- </div>
+ <div id="data_comp_other_row">
+ <span class="field_label">Other</span>
+ <span class="field_data">
+ <div class="field_description">
+ Please include any additional information, including links to relevant
+ material, details regarding user benefit, etc.
+ </div>
+ <textarea name="data_comp_other" id="data_comp_other" rows="10" cols="60"
+ class="wide"></textarea>
+ </span>
</div>
</div>
diff --git a/extensions/MozProjectReview/web/js/moz_project_review.js b/extensions/MozProjectReview/web/js/moz_project_review.js
index 22e79f707..4bca4d833 100644
--- a/extensions/MozProjectReview/web/js/moz_project_review.js
+++ b/extensions/MozProjectReview/web/js/moz_project_review.js
@@ -52,9 +52,12 @@ var MPR = {
"legal_sow_vendor_total_max": "Please enter a value for SOW vendor maximum total to be paid",
"legal_sow_vendor_product_line": "Please enter a value for SOW vendor product line"
},
- "privacy_policy_project_questions": {
- "privacy_policy_project_assistance": "Please enter a value for any assistance needed in the privacy policy project questions section",
- "privacy_policy_project_link": "Please enter a value for project link in the privacy policy project questions section"
+ "data_compliance_questions": {
+ "data_comp_request_type": "Please select a value for the data compliance request type",
+ "data_comp_area": "Please select a value for the data compliance area",
+ "data_comp_desc": "Please enter a value for the data compliance description",
+ "data_comp_handling_change": "Please select a value for the data compliance handling change",
+ "data_comp_practice_change": "Please select a value for the data compliance practice change"
}
},
@@ -68,8 +71,6 @@ var MPR = {
'vendor_cost',
'po_needed',
'sec_affects_products',
- 'privacy_policy_vendor_user_data',
- 'privacy_policy_vendor_questionnaire',
'legal_priority',
'legal_sow_vendor_product_line',
'legal_vendor_services_where',
@@ -109,9 +110,7 @@ var MPR = {
legal_vendor_single_country: false,
legal_vendor_services_where_row: false,
sec_review_questions: false,
- privacy_policy_project_questions: false,
- privacy_policy_vendor_questions: false,
- privacy_policy_vendor_extra: false
+ data_compliance_questions: false,
};
if (MPR.fieldValue('key_initiative') == 'Other') {
@@ -120,7 +119,7 @@ var MPR = {
if (MPR.fieldValue('mozilla_data') == 'Yes') {
page_sections.legal_questions = true;
- page_sections.privacy_policy_project_questions = true;
+ page_sections.data_compliance_questions = true;
page_sections.sec_review_questions = true;
}
@@ -147,7 +146,7 @@ var MPR = {
if (MPR.fieldValue('data_access') == 'Yes') {
page_sections.legal_questions = true;
page_sections.sec_review_questions = true;
- page_sections.privacy_policy_vendor_questions = true;
+ page_sections.data_compliance_questions = true;
}
if (MPR.fieldValue('vendor_cost') == '<= $25,000') {
@@ -167,10 +166,6 @@ var MPR = {
page_sections.legal_vendor_single_country = true;
}
- if (MPR.fieldValue('privacy_policy_vendor_user_data') == 'Yes') {
- page_sections.privacy_policy_vendor_extra = true;
- }
-
// Toggle the individual page_sections
for (section in page_sections) {
MPR.toggleShowSection(section, page_sections[section]);
@@ -181,7 +176,7 @@ var MPR = {
if (show) {
Dom.removeClass(section, 'bz_default_hidden');
}
- else {
+ else {
Dom.addClass(section ,'bz_default_hidden');
}
},
@@ -199,7 +194,7 @@ var MPR = {
}
}
}
-
+
// Special case checks
if (MPR.fieldValue('relationship_type') == 'Vendor/Services'
&& MPR.fieldValue('legal_vendor_services_where') == '')