Skip to content
Snippets Groups Projects
Commit f938a4fa authored by Piotr Gawron's avatar Piotr Gawron
Browse files

cookie banner data should be valid for 365 days

parent b1d7d4c6
No related branches found
No related tags found
1 merge request!307Resolve "cookie policy acceptance for matomo must expire after 1 year"
Pipeline #97833 passed
...@@ -16,6 +16,7 @@ import { injectMatomoTracking } from '@/utils/injectMatomoTracking'; ...@@ -16,6 +16,7 @@ import { injectMatomoTracking } from '@/utils/injectMatomoTracking';
import { import {
USER_ACCEPTED_COOKIES_COOKIE_NAME, USER_ACCEPTED_COOKIES_COOKIE_NAME,
USER_ACCEPTED_COOKIES_COOKIE_VALUE, USER_ACCEPTED_COOKIES_COOKIE_VALUE,
USER_ACCEPTED_COOKIES_DATE,
USER_ACCEPTED_MATOMO_COOKIES_COOKIE_NAME, USER_ACCEPTED_MATOMO_COOKIES_COOKIE_NAME,
} from './CookieBanner.constants'; } from './CookieBanner.constants';
...@@ -33,11 +34,28 @@ export const CookieBanner = (): React.ReactNode => { ...@@ -33,11 +34,28 @@ export const CookieBanner = (): React.ReactNode => {
const [options, setOptions] = useState([selectMatomoOption]); const [options, setOptions] = useState([selectMatomoOption]);
useEffect(() => { useEffect(() => {
const isAccepted = const userAcceptedCookieDate = localStorage.getItem(USER_ACCEPTED_COOKIES_DATE);
let isAccepted =
localStorage.getItem(USER_ACCEPTED_COOKIES_COOKIE_NAME) === localStorage.getItem(USER_ACCEPTED_COOKIES_COOKIE_NAME) ===
USER_ACCEPTED_COOKIES_COOKIE_VALUE.ACCEPTED && USER_ACCEPTED_COOKIES_COOKIE_VALUE.ACCEPTED &&
localStorage.getItem(USER_ACCEPTED_MATOMO_COOKIES_COOKIE_NAME) !== null && localStorage.getItem(USER_ACCEPTED_MATOMO_COOKIES_COOKIE_NAME) !== null &&
localStorage.getItem(USER_ACCEPTED_MATOMO_COOKIES_COOKIE_NAME) !== undefined; localStorage.getItem(USER_ACCEPTED_MATOMO_COOKIES_COOKIE_NAME) !== undefined;
if (!userAcceptedCookieDate) {
isAccepted = false;
} else {
const whenAccepted = Date.parse(userAcceptedCookieDate);
const now = Date.now();
// eslint-disable-next-line no-magic-numbers
const oneDay = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds
const diffDays = Math.round(Math.abs((now - whenAccepted) / oneDay));
// eslint-disable-next-line no-magic-numbers
if (diffDays > 365) {
isAccepted = false;
}
}
if (isAccepted) { if (isAccepted) {
dispatch(acceptCookies()); dispatch(acceptCookies());
} else { } else {
...@@ -51,6 +69,7 @@ export const CookieBanner = (): React.ReactNode => { ...@@ -51,6 +69,7 @@ export const CookieBanner = (): React.ReactNode => {
USER_ACCEPTED_COOKIES_COOKIE_NAME, USER_ACCEPTED_COOKIES_COOKIE_NAME,
USER_ACCEPTED_COOKIES_COOKIE_VALUE.ACCEPTED, USER_ACCEPTED_COOKIES_COOKIE_VALUE.ACCEPTED,
); );
localStorage.setItem(USER_ACCEPTED_COOKIES_DATE, new Date().toISOString().split('T')[ZERO]);
if (options.length > ZERO) { if (options.length > ZERO) {
localStorage.setItem( localStorage.setItem(
USER_ACCEPTED_MATOMO_COOKIES_COOKIE_NAME, USER_ACCEPTED_MATOMO_COOKIES_COOKIE_NAME,
......
export const USER_ACCEPTED_COOKIES_COOKIE_NAME = 'cookiesAccepted'; export const USER_ACCEPTED_COOKIES_COOKIE_NAME = 'cookiesAccepted';
export const USER_ACCEPTED_COOKIES_DATE = 'cookiesAcceptedDate';
export const USER_ACCEPTED_MATOMO_COOKIES_COOKIE_NAME = 'matomoAccepted'; export const USER_ACCEPTED_MATOMO_COOKIES_COOKIE_NAME = 'matomoAccepted';
export const USER_ACCEPTED_COOKIES_COOKIE_VALUE = { export const USER_ACCEPTED_COOKIES_COOKIE_VALUE = {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment