Commit e5dd249c authored by Dennis Tang's avatar Dennis Tang Committed by Kushal Pandya

Add notification for updated privacy policy

This adds a notification to let users know of our updated privacy
policy.

Users can dismiss the notification either by following the link or
closing the notification via an "x" icon.
parent 16f3f33e
...@@ -32,6 +32,7 @@ import initSearchAutocomplete from './search_autocomplete'; ...@@ -32,6 +32,7 @@ import initSearchAutocomplete from './search_autocomplete';
import GlFieldErrors from './gl_field_errors'; import GlFieldErrors from './gl_field_errors';
import initUserPopovers from './user_popovers'; import initUserPopovers from './user_popovers';
import { __ } from './locale'; import { __ } from './locale';
import initPrivacyPolicyUpdateCallout from './privacy_policy_update_callout';
import 'ee_else_ce/main_ee'; import 'ee_else_ce/main_ee';
...@@ -79,6 +80,7 @@ function deferredInitialisation() { ...@@ -79,6 +80,7 @@ function deferredInitialisation() {
initLogoAnimation(); initLogoAnimation();
initUsagePingConsent(); initUsagePingConsent();
initUserPopovers(); initUserPopovers();
initPrivacyPolicyUpdateCallout();
if (document.querySelector('.search')) initSearchAutocomplete(); if (document.querySelector('.search')) initSearchAutocomplete();
......
...@@ -4,6 +4,8 @@ module UserCalloutsHelper ...@@ -4,6 +4,8 @@ module UserCalloutsHelper
GKE_CLUSTER_INTEGRATION = 'gke_cluster_integration'.freeze GKE_CLUSTER_INTEGRATION = 'gke_cluster_integration'.freeze
GCP_SIGNUP_OFFER = 'gcp_signup_offer'.freeze GCP_SIGNUP_OFFER = 'gcp_signup_offer'.freeze
SUGGEST_POPOVER_DISMISSED = 'suggest_popover_dismissed'.freeze SUGGEST_POPOVER_DISMISSED = 'suggest_popover_dismissed'.freeze
# Privacy Policy Update: https://gitlab.com/gitlab-org/gitlab-ce/issues/64341
PRIVACY_POLICY_UPDATE_64341 = 'privacy_policy_update_64341'.freeze
def show_gke_cluster_integration_callout?(project) def show_gke_cluster_integration_callout?(project)
can?(current_user, :create_cluster, project) && can?(current_user, :create_cluster, project) &&
...@@ -25,6 +27,10 @@ module UserCalloutsHelper ...@@ -25,6 +27,10 @@ module UserCalloutsHelper
!user_dismissed?(SUGGEST_POPOVER_DISMISSED) !user_dismissed?(SUGGEST_POPOVER_DISMISSED)
end end
def show_privacy_policy_update_64341?
!user_dismissed?(PRIVACY_POLICY_UPDATE_64341)
end
private private
def user_dismissed?(feature_name) def user_dismissed?(feature_name)
......
...@@ -14,7 +14,8 @@ module UserCalloutEnums ...@@ -14,7 +14,8 @@ module UserCalloutEnums
gke_cluster_integration: 1, gke_cluster_integration: 1,
gcp_signup_offer: 2, gcp_signup_offer: 2,
cluster_security_warning: 3, cluster_security_warning: 3,
suggest_popover_dismissed: 9 suggest_popover_dismissed: 9,
privacy_policy_update_64341: 10 # Privacy Policy Update: https://gitlab.com/gitlab-org/gitlab-ce/issues/64341
} }
end end
end end
...@@ -17,4 +17,6 @@ ...@@ -17,4 +17,6 @@
.d-flex .d-flex
%div{ class: "#{(container_class unless @no_container)} #{@content_class}" } %div{ class: "#{(container_class unless @no_container)} #{@content_class}" }
.content{ id: "content-body" } .content{ id: "content-body" }
- if Gitlab.com? && show_privacy_policy_update_64341?
= render "layouts/privacy_policy_update_callout"
= yield = yield
- privacy_policy_link = link_to('https://about.gitlab.com/privacy', 'https://about.gitlab.com/privacy', class: 'deferred-link', target: '_blank', rel: 'noopener noreferrer')
%div{ class:"#{(container_class unless fluid_layout)} #{@content_class}" }
.bs-callout.privacy-policy-update-64341.alert.alert-block.alert-dismissable.prepend-top-default.append-bottom-default{ role: 'alert', data: { feature_id: UserCalloutsHelper::PRIVACY_POLICY_UPDATE_64341, dismiss_endpoint: user_callouts_path, defer_links: "true" } }
%button.close.js-close{ type: "button" }
= sprite_icon("close", size: 16)
%p= _('Our Privacy Policy has changed, please visit %{privacy_policy_link} to review these changes.').html_safe % { privacy_policy_link: privacy_policy_link }
---
title: Add notification for updated privacy policy
merge_request: 30808
author:
type: added
...@@ -7703,6 +7703,9 @@ msgstr "" ...@@ -7703,6 +7703,9 @@ msgstr ""
msgid "Other visibility settings have been disabled by the administrator." msgid "Other visibility settings have been disabled by the administrator."
msgstr "" msgstr ""
msgid "Our Privacy Policy has changed, please visit %{privacy_policy_link} to review these changes."
msgstr ""
msgid "Outbound requests" msgid "Outbound requests"
msgstr "" msgstr ""
......
...@@ -45,6 +45,26 @@ describe UserCalloutsHelper do ...@@ -45,6 +45,26 @@ describe UserCalloutsHelper do
end end
end end
describe '.show_privacy_policy_update_64341?' do
subject { helper.show_privacy_policy_update_64341? }
context 'when user has not dismissed' do
before do
allow(helper).to receive(:user_dismissed?).and_return(false)
end
it { is_expected.to be true }
end
context 'when user dismissed' do
before do
allow(helper).to receive(:user_dismissed?).and_return(true)
end
it { is_expected.to be false }
end
end
describe '.render_flash_user_callout' do describe '.render_flash_user_callout' do
it 'renders the flash_user_callout partial' do it 'renders the flash_user_callout partial' do
expect(helper).to receive(:render) expect(helper).to receive(:render)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment