acquia_commercemanager-8.x-1.122/modules/acm_customer/acm_customer.install
modules/acm_customer/acm_customer.install
<?php
/**
* @file
* Contains install, update, uninstall hooks.
*/
use Drupal\rest\Entity\RestResourceConfig;
use Drupal\rest\RestResourceConfigInterface;
use Drupal\user\Entity\Role;
/**
* Implements hook_install().
*/
function acm_customer_install() {
// Add permissions into ACM role.
$role = Role::load('acm');
if (!is_null($role)) {
$permissions = [
'restful post acm_customer_delete',
];
foreach ($permissions as $permission) {
$role->grantPermission($permission);
}
$role->save();
}
}
/**
* Implements hook_uninstall().
*/
function acm_customer_uninstall() {
// Remove permissions from ACM role.
$role = Role::load('acm');
if (!is_null($role)) {
$permissions = [
'restful post acm_customer_delete',
];
foreach ($permissions as $permission) {
if ($role->hasPermission($permission)) {
$role->revokePermission($permission);
}
}
$role->save();
}
}
/**
* Implements hook_update_N().
*
* Enable the 'acm_customer_delete' rest resource.
*/
function acm_customer_update_8001() {
// Creating and enabling 'customer delete' resource.
$rest_config = [
'id' => 'acm_customer_delete',
'plugin_id' => 'acm_customer_delete',
'status' => TRUE,
'granularity' => RestResourceConfigInterface::METHOD_GRANULARITY,
'configuration' => [
'POST' => [
'supported_formats' => ['json'],
'supported_auth' => ['oauth2'],
],
],
'dependencies' => [
'module' => [
'acm_customer',
'serialization',
'simple_oauth',
'user',
],
],
];
$rest_resource = new RestResourceConfig($rest_config, 'rest_resource_config');
$rest_resource->save();
}
/**
* Add customer-related permissions to ACM role.
*/
function acm_customer_update_8002() {
// Add permissions into ACM role.
$role = Role::load('acm');
if (!is_null($role)) {
$permissions = [
'restful post acm_customer_delete',
];
foreach ($permissions as $permission) {
if (!$role->hasPermission($permission)) {
$role->grantPermission($permission);
}
}
$role->save();
}
}
