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';
import GlFieldErrors from './gl_field_errors';
import initUserPopovers from './user_popovers';
import { __ } from './locale';
import initPrivacyPolicyUpdateCallout from './privacy_policy_update_callout';
import 'ee_else_ce/main_ee';
......@@ -79,6 +80,7 @@ function deferredInitialisation() {
initLogoAnimation();
initUsagePingConsent();
initUserPopovers();
initPrivacyPolicyUpdateCallout();
if (document.querySelector('.search')) initSearchAutocomplete();
......
......@@ -4,6 +4,8 @@ module UserCalloutsHelper
GKE_CLUSTER_INTEGRATION = 'gke_cluster_integration'.freeze
GCP_SIGNUP_OFFER = 'gcp_signup_offer'.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)
can?(current_user, :create_cluster, project) &&
......@@ -25,6 +27,10 @@ module UserCalloutsHelper
!user_dismissed?(SUGGEST_POPOVER_DISMISSED)
end
def show_privacy_policy_update_64341?
!user_dismissed?(PRIVACY_POLICY_UPDATE_64341)
end
private
def user_dismissed?(feature_name)
......
......@@ -14,7 +14,8 @@ module UserCalloutEnums
gke_cluster_integration: 1,
gcp_signup_offer: 2,
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
......@@ -17,4 +17,6 @@
.d-flex
%div{ class: "#{(container_class unless @no_container)} #{@content_class}" }
.content{ id: "content-body" }
- if Gitlab.com? && show_privacy_policy_update_64341?
= render "layouts/privacy_policy_update_callout"
= 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 ""
msgid "Other visibility settings have been disabled by the administrator."
msgstr ""
msgid "Our Privacy Policy has changed, please visit %{privacy_policy_link} to review these changes."
msgstr ""
msgid "Outbound requests"
msgstr ""
......
......@@ -45,6 +45,26 @@ describe UserCalloutsHelper do
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
it 'renders the flash_user_callout partial' do
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