mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 01:54:15 +00:00
156 lines
5.2 KiB
TypeScript
156 lines
5.2 KiB
TypeScript
import { TOKENITEM } from '../../core/auth/models/auth-token-info.model';
|
|
import { IMPERSONATING_COOKIE, REDIRECT_COOKIE } from '../../core/auth/auth.service';
|
|
import { LANG_COOKIE } from '../../core/locale/locale.service';
|
|
import { HAS_AGREED_END_USER } from './browser-klaro.service';
|
|
|
|
/**
|
|
* Storage name used to store klaro cookie
|
|
*/
|
|
export const ANONYMOUS_STORAGE_NAME_KLARO = 'klaro-anonymous';
|
|
|
|
/**
|
|
* Klaro configuration
|
|
* For more information see https://kiprotect.com/docs/klaro/annotated-config
|
|
*/
|
|
export const klaroConfiguration: any = {
|
|
storageName: ANONYMOUS_STORAGE_NAME_KLARO,
|
|
|
|
privacyPolicy: '/info/privacy',
|
|
|
|
/*
|
|
Setting 'hideLearnMore' to 'true' will hide the "learn more / customize" link in
|
|
the consent notice. We strongly advise against using this under most
|
|
circumstances, as it keeps the user from customizing his/her consent choices.
|
|
*/
|
|
hideLearnMore: false,
|
|
|
|
/*
|
|
Setting 'acceptAll' to 'true' will show an "accept all" button in the notice and
|
|
modal, which will enable all third-party apps if the user clicks on it. If set
|
|
to 'false', there will be an "accept" button that will only enable the apps that
|
|
are enabled in the consent modal.
|
|
*/
|
|
acceptAll: true,
|
|
|
|
/*
|
|
You can also set a custom expiration time for the Klaro cookie. By default, it
|
|
will expire after 30 days. Only relevant if 'storageMethod' is set to 'cookie'.
|
|
*/
|
|
cookieExpiresAfterDays: 365,
|
|
|
|
htmlTexts: true,
|
|
|
|
/*
|
|
You can overwrite existing translations and add translations for your app
|
|
descriptions and purposes. See `src/translations/` for a full list of
|
|
translations that can be overwritten:
|
|
https://github.com/KIProtect/klaro/tree/master/src/translations
|
|
*/
|
|
translations: {
|
|
en: {
|
|
acceptAll: 'cookies.consent.accept-all',
|
|
acceptSelected: 'cookies.consent.accept-selected',
|
|
app: {
|
|
optOut: {
|
|
description: 'cookies.consent.app.opt-out.description',
|
|
title: 'cookies.consent.app.opt-out.title'
|
|
},
|
|
purpose: 'cookies.consent.app.purpose',
|
|
purposes: 'cookies.consent.app.purposes',
|
|
required: {
|
|
description: 'cookies.consent.app.required.description',
|
|
title: 'cookies.consent.app.required.title'
|
|
}
|
|
},
|
|
close: 'cookies.consent.close',
|
|
decline: 'cookies.consent.decline',
|
|
changeDescription: 'cookies.consent.update',
|
|
consentNotice: {
|
|
description: 'cookies.consent.content-notice.description',
|
|
learnMore: 'cookies.consent.content-notice.learnMore'
|
|
},
|
|
consentModal: {
|
|
description: 'cookies.consent.content-modal.description',
|
|
privacyPolicy: {
|
|
name: 'cookies.consent.content-modal.privacy-policy.name',
|
|
text: 'cookies.consent.content-modal.privacy-policy.text'
|
|
},
|
|
title: 'cookies.consent.content-modal.title'
|
|
},
|
|
purposes: {}
|
|
}
|
|
},
|
|
apps: [
|
|
{
|
|
name: 'authentication',
|
|
purposes: ['functional'],
|
|
required: true,
|
|
cookies: [
|
|
TOKENITEM,
|
|
IMPERSONATING_COOKIE,
|
|
REDIRECT_COOKIE
|
|
]
|
|
},
|
|
{
|
|
name: 'preferences',
|
|
purposes: ['functional'],
|
|
required: true,
|
|
cookies: [
|
|
LANG_COOKIE
|
|
]
|
|
},
|
|
{
|
|
name: 'acknowledgement',
|
|
purposes: ['functional'],
|
|
required: true,
|
|
cookies: [
|
|
[/^klaro-.+$/],
|
|
HAS_AGREED_END_USER
|
|
]
|
|
},
|
|
{
|
|
name: 'google-analytics',
|
|
purposes: ['statistical'],
|
|
required: false,
|
|
cookies: [
|
|
// /*
|
|
// you an either only provide a cookie name or regular expression (regex) or a list
|
|
// consisting of a name or regex, a path and a cookie domain. Providing a path and
|
|
// domain is necessary if you have apps that set cookies for a path that is not
|
|
// "/", or a domain that is not the current domain. If you do not set these values
|
|
// properly, the cookie can't be deleted by Klaro, as there is no way to access the
|
|
// path or domain of a cookie in JS. Notice that it is not possible to delete
|
|
// cookies that were set on a third-party domain, or cookies that have the HTTPOnly
|
|
// attribute: https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie#new-
|
|
// cookie_domain
|
|
// */
|
|
//
|
|
// /*
|
|
// This rule will match cookies that contain the string '_pk_' and that are set on
|
|
// the path '/' and the domain 'klaro.kiprotect.com'
|
|
// */
|
|
[/^_ga.?$/],
|
|
[/^_gid$/],
|
|
//
|
|
// /*
|
|
// Same as above, only for the 'localhost' domain
|
|
// */
|
|
// [/^_pk_.*$/, '/', 'localhost'],
|
|
//
|
|
// /*
|
|
// This rule will match all cookies named 'piwik_ignore' that are set on the path
|
|
// '/' on the current domain
|
|
// */
|
|
// 'piwik_ignore',
|
|
],
|
|
/*
|
|
If 'onlyOnce' is set to 'true', the app will only be executed once regardless
|
|
how often the user toggles it on and off. This is relevant e.g. for tracking
|
|
scripts that would generate new page view events every time Klaro disables and
|
|
re-enables them due to a consent change by the user.
|
|
*/
|
|
onlyOnce: true,
|
|
},
|
|
],
|
|
};
|