function pwa_webpush_install in Progressive Web App 7.2
Implements hook_install().
File
- modules/
pwa_webpush/ pwa_webpush.install, line 179
Code
function pwa_webpush_install() {
user_role_grant_permissions(DRUPAL_AUTHENTICATED_RID, [
'access pwa webpush',
]);
user_role_grant_permissions(DRUPAL_ANONYMOUS_RID, [
'access pwa webpush',
]);
// Set default settings.
$vapid_settings = [
'pwa_webpush_vapid_subject' => 'mailto:' . variable_get('site_mail', ''),
];
// Include composer dependencies here to make it available everywhere.
if (!class_exists('\\Minishlink\\WebPush\\WebPush')) {
$folders = [
// The vendor repository will be at the PWA module root.
__DIR__ . '/../..',
DRUPAL_ROOT,
DRUPAL_ROOT . '/..',
];
foreach ($folders as $folder) {
if (file_exists($folder . '/vendor/autoload.php')) {
require $folder . '/vendor/autoload.php';
break;
}
}
}
if (class_exists('\\Minishlink\\WebPush\\VAPID')) {
$keys = \Minishlink\WebPush\VAPID::createVapidKeys();
$vapid_settings['pwa_webpush_vapid_public'] = $keys['publicKey'];
$vapid_settings['pwa_webpush_vapid_private'] = $keys['privateKey'];
}
foreach ($vapid_settings as $key => $default) {
// Only set variables if they do not exist.
if (empty(variable_get($key, ''))) {
variable_set($key, $default);
}
}
}