Commit 38e8fdca authored by Joshua Sedler's avatar Joshua Sedler 🤸🏼
Browse files

Issue #3324481: Allow for more structured Cookie Service information

parent c9107183
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -2,10 +2,17 @@ langcode: en
id: functional
status: true
dependencies: {  }
label: 'Required functional cookies'
label: 'Required functional'
group: functional
info:
  value: "<table>\r\n\t<thead>\r\n\t\t<tr>\r\n\t\t\t<th width=\"15%\">Cookie name</th>\r\n\t\t\t<th width=\"15%\">Default expiration time</th>\r\n\t\t\t<th>Description</th>\r\n\t\t</tr>\r\n\t</thead>\r\n\t<tbody>\r\n\t\t<tr>\r\n\t\t\t<td><code dir=\"ltr\" translate=\"no\">SSESS&lt;ID&gt;</code></td>\r\n\t\t\t<td>1 month</td>\r\n\t\t\t<td>If you are logged in to this website, a session cookie is required to identify and connect your browser to your user account in the server backend of this website.</td>\r\n\t\t</tr>\r\n\t\t<tr>\r\n\t\t\t<td><code dir=\"ltr\" translate=\"no\">cookiesjsr</code></td>\r\n\t\t\t<td>1 year</td>\r\n\t\t\t<td>When you visited this website for the first time, you were asked for your permission to use several services (including those from third parties) that require data to be saved in your browser (cookies, local storage). Your decisions about each service (allow, deny) are stored in this cookie and are reused each time you visit this website.</td>\r\n\t\t</tr>\r\n\t</tbody>\r\n</table>\r\n"
  format: full_html
url: '/cookies/documentation'
consentRequired: false
placeholderMainText: 'This content is blocked because Required functional cookies have not been accepted.'
placeholderAcceptText: 'Only accept Required functional cookies.'
purpose: ''
processor: ''
processorContact: ''
processorUrl: ''
processorPrivacyPolicyUrl: ''
processorCookiePolicyUrl: ''
+10 −5
Original line number Diff line number Diff line
@@ -10,10 +10,8 @@ cookieDocsUri: '/cookies/documentation'
denyAll: 'Deny all'
settings: 'Cookie settings'
acceptAll: 'Accept all'
allowAll: 'Accept all'
cookieSettings: 'Cookie settings'
close: 'Close'
officialWebsite: 'View official website'
requiredCookies: 'Required cookies'
readMore: 'Read more'
allowed: 'Allowed'
@@ -22,5 +20,12 @@ alwaysActive: 'Always active'
settingsAllServices: 'Settings for all services'
saveSettings: 'Save'
credit: ''
disclaimer_text: 'All cookie information is subject to change by the service providers. We update this information regularly.'
disclaimer_text_position: 'above'
disclaimerText: 'All cookie information is subject to change by the service providers. We update this information regularly.'
disclaimerTextPosition: 'above'
processorDetailsLabel: 'Processor Company Details'
processorLabel: 'Company'
processorWebsiteUrlLabel: 'Company Website'
processorPrivacyPolicyUrlLabel: 'Company Privacy Policy'
processorCookiePolicyUrlLabel: 'Company Cookie Policy'
processorContactLabel: 'Data Protection Contact Details'
placeholderAcceptAllText: 'Accept All Cookies'
+24 −8
Original line number Diff line number Diff line
@@ -36,9 +36,6 @@ cookies.texts:
    acceptAll:
      type: label
      label: 'Accept all'
    allowAll:
      type: label
      label: 'Allow all'
    requiredCookies:
      type: label
      label: 'Required cookies'
@@ -48,9 +45,6 @@ cookies.texts:
    close:
      type: label
      label: 'Close'
    officialWebsite:
      type: label
      label: 'Official website'
    readMore:
      type: label
      label: 'Read more'
@@ -72,9 +66,31 @@ cookies.texts:
    credit:
      type: label
      label: 'Credit'
    disclaimer_text:
    disclaimerText:
      type: text
      label: 'Disclaimer text'
    disclaimer_text_position:
    disclaimerTextPosition:
      type: string
      label: 'Disclaimer text position'
    processorDetailsLabel:
      type: label
      label: 'Processor Details Label'
    processorLabel:
      type: label
      label: 'Processor Label'
    processorWebsiteUrlLabel:
      type: label
      label: 'Processor Website URL Label'
    processorPrivacyPolicyUrlLabel:
      type: label
      label: 'Processor Privacy Policy URL Label'
    processorCookiePolicyUrlLabel:
      type: label
      label: 'Processor Cookie Policy URL Label'
    processorContactLabel:
      type: label
      label: 'Processor Contact Label'
    placeholderAcceptAllText:
      type: label
      label: 'Service Blocked Placeholder Accept All Text'
+24 −4
Original line number Diff line number Diff line
@@ -14,10 +14,6 @@ cookies.cookies_service.*:
    info:
      type: text_format
      label: 'Info'
    url:
      type: label
      translatable: true
      label: 'Url'
    consentRequired:
      type: boolean
      label: 'Consent required'
@@ -29,3 +25,27 @@ cookies.cookies_service.*:
    dependencies:
      type: config_dependencies
      label: 'Dependencies'
    purpose:
      type: label
      label: 'Purpose'
    placeholderMainText:
      type: label
      label: 'Blocked Placeholder Message'
    placeholderAcceptText:
      type: label
      label: 'Accept Message'
    processor:
      type: label
      label: 'Processor Company'
    processorContact:
      type: label
      label: 'Processor Company Contact'
    processorUrl:
      type: label
      label: 'Processor URL'
    processorPrivacyPolicyUrl:
      type: label
      label: 'Processor Privacy Policy URL'
    processorCookiePolicyUrl:
      type: label
      label: 'Processor Cookie Policy URL'
+56 −0
Original line number Diff line number Diff line
@@ -143,3 +143,59 @@ function cookies_update_8007() {
  $cookies_service_group_entity->delete();
  $cookies_service_entity->delete();
}

/**
 * Three changes.
 *
 * Remap legacy "url" cookies service key, set newly added service entity
 * variables on all existing service entities and add / remove newly added
 * cookies text variables.
 */
function cookies_update_8008() {
  // Remap legacy "url" cookies service key, set newly added service entity
  // variables on all existing service entities:
  $cookies_service_entities = \Drupal::entityTypeManager()->getStorage('cookies_service')->loadMultiple();
  /**
   * @var \Drupal\cookies\Entity\CookiesServiceEntity $cookies_service_entity
   */
  foreach ($cookies_service_entities as $cookies_service_entity) {
    // Remove the old functional cookies service legacy url as it was an
    // internal path which was obsolete anyway:
    if ($cookies_service_entity->id() == 'functional') {
      $cookies_service_entity->setProcessorCookiePolicyUrl('');
      // Also change label so the message "[...] accept [serviceName] cookies
      // [...]" is correct:
      $cookies_service_entity->set('label', 'Required functional');
    }
    // Set the old url value otherwise:
    else {
      $cookies_service_entity->setProcessorCookiePolicyUrl($cookies_service_entity->get('url'));
    }
    $cookies_service_entity->setPurpose('');
    $cookies_service_entity->setProcessor('');
    $cookies_service_entity->setProcessorContact('');
    $cookies_service_entity->setProcessorUrl('');
    $cookies_service_entity->setProcessorPrivacyPolicyUrl('');
    $cookies_service_entity->setPlaceholderMainText('This content is blocked because ' . $cookies_service_entity->label() . ' cookies have not been accepted.');
    $cookies_service_entity->setPlaceholderAcceptText('Only accept ' . $cookies_service_entity->label() . ' cookies');
    // Delete the old legacy service entity url:
    unset($cookies_service_entity->url);
    $cookies_service_entity->save();
  }
  // Add / remove newly added cookies text variables:
  $textsConfig = \Drupal::configFactory()->getEditable('cookies.texts');
  $textsConfig
    ->set('processorDetailsLabel', 'Processor Company Details')
    ->set('processorLabel', 'Company')
    ->set('processorWebsiteUrlLabel', 'Company Website')
    ->set('processorPrivacyPolicyUrlLabel', 'Company Privacy Policy')
    ->set('processorCookiePolicyUrlLabel', 'Company Cookie Policy')
    ->set('processorContactLabel', 'Data Protection Contact Details')
    ->set('disclaimerText', 'All cookie information is subject to change by the service providers. We update this information regularly.')
    ->set('disclaimerTextPosition', 'above')
    ->set('placeholderAcceptAllText', 'Accept All Cookies')
    ->clear('official_website_text')
    // "allowAll" was never used instead "acceptAll" was used:
    ->clear('allowAll')
    ->save();
}
Loading