Commit 7819669a authored by GitLab Bot's avatar GitLab Bot

Automatic merge of gitlab-org/gitlab-ce master

parents ed5359b4 ebb13148
...@@ -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
...@@ -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