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

Merge branch '312-cookie-policy-acceptance-for-matomo-must-expire-after-1-year' into 'development'

Resolve "cookie policy acceptance for matomo must expire after 1 year"

Closes #312

See merge request !307
parents b1d7d4c6 f938a4fa
No related branches found
No related tags found
1 merge request!307Resolve "cookie policy acceptance for matomo must expire after 1 year"
Pipeline #97890 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