cforge-2.0.x-dev/modules/cforge_offline/cforge_offline.install
modules/cforge_offline/cforge_offline.install
<?php
/**
* @file
* Install hooks for cforge_offline.
*/
use Drupal\user\Entity\Role;
use Drupal\Core\Entity\Entity\EntityFormDisplay;
use Drupal\views\Entity\View;
/**
* Implements hook_install().
*/
function cforge_offline_install() {
// Add the masquerade nominate to the default user form display.
$settings = [
'type' => 'entity_reference_autocomplete_tags',
'weight' => 12,
//'region' => 'content',
'settings' => [
'match_operator' => 'CONTAINS',
'size' => 60,
'placeholder' => 'Names of members...',
],
];
EntityFormDisplay::load('user.user.default')
->setComponent('masquerade_nominees', $settings)
->save();
Role::load('committee')
->grantPermission('masquerade as any user')->save();
cforge_offline_modify_admin_user_view();
}
/**
* Implements hook_modules_uninstalled().
*/
function cforge_offline_modules_uninstalled($modules) {
if (in_array('cforge_offline', $modules)) {
\Drupal::service('module_installer')->uninstall(['masquerade_nominate', 'masquerade']);
}
}
/**
* Add an exposed filter to the user_admin_people view.
*/
function cforge_offline_modify_admin_user_view() {
$view = View::load('user_admin_people');
$display = &$view->getDisplay('default');
$display['display_options']['filters']['masquerade_nominees_target_id'] = [
'id' => 'masquerade_nominees_target_id',
'table' => 'user__masquerade_nominees',
'field' => 'masquerade_nominees_target_id',
'relationship' => 'none',
'group_type' => 'count',
'admin_label' => '',
'operator' => '=',
'value' => [
'min' => '',
'max' => '',
'value' => '',
],
'group' => 1,
'exposed' => TRUE,
'expose' => [
'operator_id' => 'masquerade_nominees_target_id_op',
'label' => 'Trusted nominees',
'description' => NULL,
'use_operator' => FALSE,
'operator' => 'masquerade_nominees_target_id_op',
'identifier' => 'masquerade_nominees_target_id',
'required' => FALSE,
'remember' => FALSE,
'multiple' => FALSE,
'remember_roles' => [
'authenticated' => 'authenticated',
],
],
'is_grouped' => TRUE,
'group_info' => [
'label' => 'Postal',
'description' => '',
'identifier' => 'masquerade_nominees_target_id',
'optional' => FALSE,
'widget' => 'select',
'multiple' => FALSE,
'remember' => FALSE,
'default_group' => '1',
'default_group_multiple' => [],
'group_items' => [
0 => [
'title' => '- Any -',
'operator' => 'not between',
'value' => [
'min' => 1,
'max' => 1,
'min' => ''
]
],
1 => [
'title' => 'All members',
'operator' => 'empty',
],
2 => [
'title' => 'Postal member',
'operator' => 'not empty',
],
],
],
'plugin_id' => 'numeric',
];
$view->save();
}
