/** * Tests the constructor assignment of actions. */ public function testConstructor() { $actions = array(); for ($i = 1; $i <= 2; $i++) { $action = $this->getMock('\\Drupal\\system\\ActionConfigEntityInterface'); $action->expects($this->any())->method('getType')->will($this->returnValue('user')); $actions[$i] = $action; } $action = $this->getMock('\\Drupal\\system\\ActionConfigEntityInterface'); $action->expects($this->any())->method('getType')->will($this->returnValue('node')); $actions[] = $action; $entity_storage = $this->getMock('Drupal\\Core\\Entity\\EntityStorageInterface'); $entity_storage->expects($this->any())->method('loadMultiple')->will($this->returnValue($actions)); $views_data = $this->getMockBuilder('Drupal\\views\\ViewsData')->disableOriginalConstructor()->getMock(); $views_data->expects($this->any())->method('get')->with('users')->will($this->returnValue(array('table' => array('entity type' => 'user')))); $container = new ContainerBuilder(); $container->set('views.views_data', $views_data); \Drupal::setContainer($container); $storage = $this->getMock('Drupal\\views\\ViewStorageInterface'); $storage->expects($this->any())->method('get')->with('base_table')->will($this->returnValue('users')); $executable = $this->getMockBuilder('Drupal\\views\\ViewExecutable')->disableOriginalConstructor()->getMock(); $executable->storage = $storage; $display = $this->getMockBuilder('Drupal\\views\\Plugin\\views\\display\\DisplayPluginBase')->disableOriginalConstructor()->getMock(); $definition['title'] = ''; $options = array(); $user_bulk_form = new UserBulkForm(array(), 'user_bulk_form', $definition, $entity_storage); $user_bulk_form->init($executable, $display, $options); $this->assertAttributeEquals(array_slice($actions, 0, -1, TRUE), 'actions', $user_bulk_form); }
/** * {@inheritdoc} */ public function init(ViewExecutable $view, DisplayPluginBase $display, array &$options = NULL) { parent::init($view, $display, $options); if (roleassign_restrict_access()) { // Remove actions that are not allowed based on RoleAssign settings. $assignable_roles = array_filter(\Drupal::config('roleassign.settings')->get('roleassign_roles')); foreach ($this->actions as $action_key => $action) { if (in_array($action->get('plugin'), array('user_add_role_action', 'user_remove_role_action'))) { $config = $action->get('configuration'); if (!in_array($config['rid'], $assignable_roles)) { unset($this->actions[$action_key]); } } } } }