social_swiftmail.install in Open Social 10.3.x
Same filename and directory in other branches
- 8.9 modules/social_features/social_swiftmail/social_swiftmail.install
- 8 modules/social_features/social_swiftmail/social_swiftmail.install
- 8.2 modules/social_features/social_swiftmail/social_swiftmail.install
- 8.3 modules/social_features/social_swiftmail/social_swiftmail.install
- 8.4 modules/social_features/social_swiftmail/social_swiftmail.install
- 8.5 modules/social_features/social_swiftmail/social_swiftmail.install
- 8.6 modules/social_features/social_swiftmail/social_swiftmail.install
- 8.7 modules/social_features/social_swiftmail/social_swiftmail.install
- 8.8 modules/social_features/social_swiftmail/social_swiftmail.install
- 10.0.x modules/social_features/social_swiftmail/social_swiftmail.install
- 10.1.x modules/social_features/social_swiftmail/social_swiftmail.install
- 10.2.x modules/social_features/social_swiftmail/social_swiftmail.install
Install and update hooks for Social Swiftmailer.
File
modules/social_features/social_swiftmail/social_swiftmail.installView source
<?php
/**
* @file
* Install and update hooks for Social Swiftmailer.
*/
/**
* Implements hook_install().
*
* Perform actions related to the installation of social_swiftmail.
*/
function social_swiftmail_install() {
// Get swift and mailsystem config.
$swift_settings = \Drupal::configFactory()
->getEditable('swiftmailer.message');
$mailsystem_settings = \Drupal::configFactory()
->getEditable('mailsystem.settings');
// Alter swift settings.
$swift_settings
->set('format', 'text/html')
->save();
$swift_settings
->set('respect_format', FALSE)
->save();
// Alter mailsystem settings.
$mailsystem_settings
->set('theme', 'default')
->save();
$mailsystem_settings
->set('defaults.sender', 'social_swiftmailer')
->save();
$mailsystem_settings
->set('defaults.formatter', 'social_swiftmailer')
->save();
$mailsystem_settings
->set('modules.swiftmailer.none.sender', 'social_swiftmailer')
->save();
$mailsystem_settings
->set('modules.swiftmailer.none.formatter', 'social_swiftmailer')
->save();
// Set some default permissions.
_social_swiftmail_set_permissions();
}
/**
* Function to set permissions.
*/
function _social_swiftmail_set_permissions() {
$roles = \Drupal::entityQuery('user_role')
->condition('id', 'administrator', '<>')
->execute();
foreach ($roles as $role) {
$permissions = _social_swiftmail_get_permissions($role);
user_role_grant_permissions($role, $permissions);
}
}
/**
* Build the permissions.
*
* @param string $role
* The role.
*
* @return array
* Returns an array containing the permissions.
*/
function _social_swiftmail_get_permissions($role) {
// Anonymous.
$permissions['anonymous'] = [];
// Authenticated.
$permissions['authenticated'] = array_merge($permissions['anonymous'], [
'use text format mail_html',
]);
// Content manager.
$permissions['contentmanager'] = array_merge($permissions['authenticated'], []);
// Site manager.
$permissions['sitemanager'] = array_merge($permissions['contentmanager'], [
'administer social swiftmail',
]);
return $permissions[$role] ?? [];
}
/**
* Set which theme to use when sending emails.
*/
function social_swiftmail_update_8001() {
// Alter mailsystem settings.
$mailsystem_settings = \Drupal::configFactory()
->getEditable('mailsystem.settings');
$mailsystem_settings
->set('theme', 'default')
->save();
}
/**
* Set swiftmail permissions for sitemanagers settings.
*/
function social_swiftmail_update_8002() {
// Give SM the correct permission.
user_role_grant_permissions('sitemanager', [
'use text format mail_html',
'administer social swiftmail',
]);
}
/**
* Allow using the "Mail HTML" text format by the logged user.
*/
function social_swiftmail_update_8003() {
$roles = \Drupal::entityQuery('user_role')
->condition('id', [
'authenticated',
'contentmanager',
], 'IN')
->execute();
foreach ($roles as $role) {
user_role_grant_permissions($role, [
'use text format mail_html',
]);
}
}
Functions
Name![]() |
Description |
---|---|
social_swiftmail_install | Implements hook_install(). |
social_swiftmail_update_8001 | Set which theme to use when sending emails. |
social_swiftmail_update_8002 | Set swiftmail permissions for sitemanagers settings. |
social_swiftmail_update_8003 | Allow using the "Mail HTML" text format by the logged user. |
_social_swiftmail_get_permissions | Build the permissions. |
_social_swiftmail_set_permissions | Function to set permissions. |