social_gdpr.install in Open Social 10.3.x
Same filename and directory in other branches
- 8.9 modules/custom/social_gdpr/social_gdpr.install
- 8.2 modules/custom/social_gdpr/social_gdpr.install
- 8.3 modules/custom/social_gdpr/social_gdpr.install
- 8.4 modules/custom/social_gdpr/social_gdpr.install
- 8.5 modules/custom/social_gdpr/social_gdpr.install
- 8.6 modules/custom/social_gdpr/social_gdpr.install
- 8.7 modules/custom/social_gdpr/social_gdpr.install
- 8.8 modules/custom/social_gdpr/social_gdpr.install
- 10.0.x modules/custom/social_gdpr/social_gdpr.install
- 10.1.x modules/custom/social_gdpr/social_gdpr.install
- 10.2.x modules/custom/social_gdpr/social_gdpr.install
Install, update and uninstall functions for the social_gdpr module.
File
modules/custom/social_gdpr/social_gdpr.installView 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',
'administer data policy entities',
'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',
'translate data_policy',
]);
if (isset($permissions[$role])) {
return $permissions[$role];
}
return [];
}
/**
* Update data policy permissions with new administer entities permission.
*/
function social_gdpr_update_8901() {
user_role_grant_permissions('sitemanager', [
'administer data policy entities',
]);
}
/**
* Add permissions for SM to add translations for Data Policy.
*/
function social_gdpr_update_8902() {
user_role_grant_permissions('sitemanager', [
'translate data_policy',
]);
}
Functions
Name![]() |
Description |
---|---|
social_gdpr_install | Implements hook_install(). |
social_gdpr_update_8901 | Update data policy permissions with new administer entities permission. |
social_gdpr_update_8902 | Add permissions for SM to add translations for Data Policy. |
_social_gdpr_get_permissions | Build the permissions. |
_social_gdpr_set_permissions | Function to set permissions. |