You are here

social_gdpr.install in Open Social 8.7

Install, update and uninstall functions for the social_gdpr module.

File

modules/custom/social_gdpr/social_gdpr.install
View source
<?php

/**
 * @file
 * Install, update and uninstall functions for the social_gdpr module.
 */
use Drupal\user\Entity\Role;

/**
 * Implements hook_install().
 */
function social_gdpr_install() {

  // Set some default permissions.
  _social_gdpr_set_permissions();
  \Drupal::configFactory()
    ->getEditable('data_policy.data_policy')
    ->set('enforce_consent', TRUE)
    ->save();
}

/**
 * Function to set permissions.
 */
function _social_gdpr_set_permissions() {

  /** @var \Drupal\user\Entity\Role $role */
  foreach (Role::loadMultiple() as $role) {
    if ($role
      ->id() !== 'administrator') {
      $permissions = _social_gdpr_get_permissions($role
        ->id());
      user_role_grant_permissions($role
        ->id(), $permissions);
    }
  }

  // Only for AN.
  user_role_grant_permissions('anonymous', [
    'without consent',
  ]);
}

/**
 * Build the permissions.
 *
 * @param string $role
 *   The role.
 *
 * @return array
 *   Returns an array containing the permissions.
 */
function _social_gdpr_get_permissions($role) {

  // Anonymous.
  $permissions['anonymous'] = [];

  // Authenticated.
  $permissions['authenticated'] = array_merge($permissions['anonymous'], []);

  // Content manager.
  $permissions['contentmanager'] = array_merge($permissions['authenticated'], []);

  // Site manager.
  $permissions['sitemanager'] = array_merge($permissions['contentmanager'], [
    'administer data policy settings',
    'edit data policy',
    'view all data policy revisions',
    'access data policy revisions',
    'revert all data policy revisions',
    'overview user consents',
    'edit inform and consent setting',
    'overview inform and consent settings',
    'administer inform and consent settings',
    'change inform and consent setting status',
  ]);
  if (isset($permissions[$role])) {
    return $permissions[$role];
  }
  return [];
}

Functions

Namesort descending Description
social_gdpr_install Implements hook_install().
_social_gdpr_get_permissions Build the permissions.
_social_gdpr_set_permissions Function to set permissions.