class UserRoleRemove
Provides a 'Remove user role' action.
Plugin annotation
@RulesAction(
id = "rules_user_role_remove",
label = @Translation("Remove user role"),
category = @Translation("User"),
context_definitions = {
"user" = @ContextDefinition("entity:user",
label = @Translation("User"),
description = @Translation("The user whose roles should be changed."),
assignment_restriction = "selector"
),
"roles" = @ContextDefinition("entity:user_role",
label = @Translation("Roles"),
description = @Translation("The user role(s) to remove."),
options_provider = "\Drupal\rules\TypedData\Options\RolesOptions",
multiple = TRUE
),
}
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements \Drupal\Component\Plugin\PluginInspectionInterface, \Drupal\Component\Plugin\DerivativeInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\Messenger\MessengerTrait extends \Drupal\Component\Plugin\PluginBase
- class \Drupal\rules\Core\RulesActionBase implements \Drupal\rules\Core\RulesActionInterface uses \Drupal\Core\Plugin\ContextAwarePluginTrait, \Drupal\rules\Context\ContextProviderTrait, \Drupal\rules\Core\ExecutablePluginTrait, \Drupal\rules\Core\ConfigurationAccessControlTrait extends \Drupal\Core\Plugin\PluginBase
- class \Drupal\rules\Plugin\RulesAction\UserRoleRemove extends \Drupal\rules\Core\RulesActionBase
- class \Drupal\rules\Core\RulesActionBase implements \Drupal\rules\Core\RulesActionInterface uses \Drupal\Core\Plugin\ContextAwarePluginTrait, \Drupal\rules\Context\ContextProviderTrait, \Drupal\rules\Core\ExecutablePluginTrait, \Drupal\rules\Core\ConfigurationAccessControlTrait extends \Drupal\Core\Plugin\PluginBase
- class \Drupal\Core\Plugin\PluginBase uses \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\Messenger\MessengerTrait extends \Drupal\Component\Plugin\PluginBase
Expanded class hierarchy of UserRoleRemove
File
-
src/
Plugin/ RulesAction/ UserRoleRemove.php, line 31
Namespace
Drupal\rules\Plugin\RulesActionView source
class UserRoleRemove extends RulesActionBase {
/**
* Flag that indicates if the entity should be auto-saved later.
*
* @var bool
*/
protected $saveLater = FALSE;
/**
* Remove role from a user.
*
* @param \Drupal\user\UserInterface $user
* User object the roles should be removed from.
* @param \Drupal\user\RoleInterface[] $roles
* Array of user roles.
*
* @throws \Drupal\rules\Exception\InvalidArgumentException
*/
protected function doExecute(UserInterface $user, array $roles) {
foreach ($roles as $role) {
// Check if user has role.
if ($user->hasRole($role->id())) {
// If you try to add anonymous or authenticated role to user, Drupal
// will throw an \InvalidArgumentException. Anonymous or authenticated
// role ID must not be assigned manually.
try {
$user->removeRole($role->id());
} catch (\InvalidArgumentException $e) {
throw new InvalidArgumentException($e->getMessage());
}
// Set flag that indicates if the entity should be auto-saved later.
$this->saveLater = TRUE;
}
}
}
/**
* {@inheritdoc}
*/
public function autoSaveContext() {
if ($this->saveLater) {
return [
'user',
];
}
return [];
}
}
Members
| Title Sort descending | Modifiers | Object type | Summary | Member alias | Overriden Title | Overrides |
|---|---|---|---|---|---|---|
| ConfigurationAccessControlTrait::checkConfigurationAccess | public | function | Checks configuration permission. | |||
| ContextAwarePluginTrait::$context | protected | property | The data objects representing the context of this plugin. | |||
| ContextAwarePluginTrait::$initializedContextConfig | protected | property | Tracks whether the context has been initialized from configuration. | |||
| ContextAwarePluginTrait::getCacheContexts | public | function | 9 | |||
| ContextAwarePluginTrait::getCacheMaxAge | public | function | 7 | |||
| ContextAwarePluginTrait::getCacheTags | public | function | 4 | |||
| ContextAwarePluginTrait::getContext | public | function | ||||
| ContextAwarePluginTrait::getContextDefinition | public | function | ||||
| ContextAwarePluginTrait::getContextDefinitions | public | function | ||||
| ContextAwarePluginTrait::getContextMapping | public | function | ||||
| ContextAwarePluginTrait::getContexts | public | function | ||||
| ContextAwarePluginTrait::getContextValue | public | function | Aliased as: traitGetContextValue | |||
| ContextAwarePluginTrait::getContextValues | public | function | ||||
| ContextAwarePluginTrait::getPluginDefinition | abstract public | function | 1 | |||
| ContextAwarePluginTrait::setContext | public | function | 1 | |||
| ContextAwarePluginTrait::setContextMapping | public | function | ||||
| ContextAwarePluginTrait::setContextValue | public | function | ||||
| ContextAwarePluginTrait::validateContexts | public | function | ||||
| ContextProviderTrait::$providedContext | protected | property | The data objects that are provided by this plugin. | |||
| ContextProviderTrait::getProvidedContext | public | function | ||||
| ContextProviderTrait::getProvidedContextDefinition | public | function | ||||
| ContextProviderTrait::getProvidedContextDefinitions | public | function | ||||
| ContextProviderTrait::setProvidedValue | public | function | ||||
| ContextProviderTrait::upcastEntityId | public | function | Upcasts an entity id to a full entity object. | |||
| DependencySerializationTrait::$_entityStorages | protected | property | An array of entity type IDs keyed by the property name of their storages. | |||
| DependencySerializationTrait::$_serviceIds | protected | property | An array of service IDs keyed by property name used for serialization. | |||
| DependencySerializationTrait::__sleep | public | function | 2 | |||
| DependencySerializationTrait::__wakeup | public | function | #[\ReturnTypeWillChange] | 2 | ||
| ExecutablePluginTrait::getLabelValue | protected | function | Get the translated label from the plugin definition. | |||
| ExecutablePluginTrait::summary | public | function | Get the translated summary from the label annotation. | 4 | ||
| MessengerTrait::$messenger | protected | property | The messenger. | 27 | ||
| MessengerTrait::messenger | public | function | Gets the messenger. | 27 | ||
| MessengerTrait::setMessenger | public | function | Sets the messenger. | |||
| PluginBase::$pluginDefinition | protected | property | The plugin implementation definition. | 1 | ||
| PluginBase::$pluginId | protected | property | The plugin_id. | |||
| PluginBase::DERIVATIVE_SEPARATOR | constant | A string which is used to separate base plugin IDs from the derivative ID. | ||||
| PluginBase::getBaseId | public | function | Gets the base_plugin_id of the plugin instance. | Overrides DerivativeInspectionInterface::getBaseId | ||
| PluginBase::getDerivativeId | public | function | Gets the derivative_id of the plugin instance. | Overrides DerivativeInspectionInterface::getDerivativeId | ||
| PluginBase::getPluginId | public | function | Gets the plugin_id of the plugin instance. | Overrides PluginInspectionInterface::getPluginId | ||
| PluginBase::isConfigurable | public | function | Determines if the plugin is configurable. | |||
| PluginBase::__construct | public | function | Constructs a \Drupal\Component\Plugin\PluginBase object. | 85 | ||
| RulesActionBase::$configuration | protected | property | The plugin configuration. | Overrides PluginBase::$configuration | ||
| RulesActionBase::access | public | function | Checks object access. | Overrides RulesActionInterface::access | ||
| RulesActionBase::assertMetadata | public | function | Asserts additional metadata for the selected data. | Overrides ContextAwarePluginInterface::assertMetadata | ||
| RulesActionBase::calculateDependencies | public | function | @todo this documentation is not actually inherited from any interface. Do we need this empty implementation? |
|||
| RulesActionBase::defaultConfiguration | public | function | @todo this documentation is not actually inherited from any interface. Do we need this empty implementation? |
|||
| RulesActionBase::execute | public | function | Executes the plugin. | Overrides ExecutableInterface::execute | 2 | |
| RulesActionBase::executeMultiple | public | function | @todo this documentation is not actually inherited from any interface. Do we need this empty implementation? |
|||
| RulesActionBase::getConfiguration | public | function | @todo this documentation is not actually inherited from any interface. | |||
| RulesActionBase::getContextValue | public | function | Gets the value for a defined context. | Overrides ContextAwarePluginInterface::getContextValue | ||
| RulesActionBase::refineContextDefinitions | public | function | Refines used and provided context definitions based upon context values. | Overrides ContextAwarePluginInterface::refineContextDefinitions | 5 | |
| RulesActionBase::setConfiguration | public | function | @todo this documentation is not actually inherited from any interface. | |||
| StringTranslationTrait::$stringTranslation | protected | property | The string translation service. | 3 | ||
| StringTranslationTrait::formatPlural | protected | function | Formats a string containing a count of items. | |||
| StringTranslationTrait::getNumberOfPlurals | protected | function | Returns the number of plurals supported by a given language. | |||
| StringTranslationTrait::getStringTranslation | protected | function | Gets the string translation service. | |||
| StringTranslationTrait::setStringTranslation | public | function | Sets the string translation service to use. | 2 | ||
| StringTranslationTrait::t | protected | function | Translates a string to the current language or to a given language. | |||
| UserRoleRemove::$saveLater | protected | property | Flag that indicates if the entity should be auto-saved later. | |||
| UserRoleRemove::autoSaveContext | public | function | Returns a list of context names that should be auto-saved after execution. | Overrides RulesActionBase::autoSaveContext | ||
| UserRoleRemove::doExecute | protected | function | Remove role from a user. |