class AddPermissionToRole in JSON-RPC 8
Same name and namespace in other branches
- 2.x modules/jsonrpc_core/src/Plugin/jsonrpc/Method/AddPermissionToRole.php \Drupal\jsonrpc_core\Plugin\jsonrpc\Method\AddPermissionToRole
A method to add permissions to a role.
Plugin annotation
@JsonRpcMethod(
id = "user_permissions.add_permission_to_role",
usage = @Translation("Add the given permission to the specified role."),
access = {"administer permissions"},
params = {
"permission" = @JsonRpcParameterDefinition(schema = {"type": "string"}),
"role" = @JsonRpcParameterDefinition(factory = "\Drupal\jsonrpc\ParameterFactory\EntityParameterFactory"),
}
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\jsonrpc\Plugin\JsonRpcMethodBase implements ContainerFactoryPluginInterface, ExecutableWithParamsInterface
- class \Drupal\jsonrpc_core\Plugin\jsonrpc\Method\UserPermissionsBase
- class \Drupal\jsonrpc_core\Plugin\jsonrpc\Method\AddPermissionToRole
- class \Drupal\jsonrpc_core\Plugin\jsonrpc\Method\UserPermissionsBase
- class \Drupal\jsonrpc\Plugin\JsonRpcMethodBase implements ContainerFactoryPluginInterface, ExecutableWithParamsInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of AddPermissionToRole
File
- modules/
jsonrpc_core/ src/ Plugin/ jsonrpc/ Method/ AddPermissionToRole.php, line 24
Namespace
Drupal\jsonrpc_core\Plugin\jsonrpc\MethodView source
class AddPermissionToRole extends UserPermissionsBase {
/**
* {@inheritdoc}
*/
public function execute(ParameterBag $params) {
$permission = $params
->get('permission');
/* @var \Drupal\user\RoleInterface $role */
$role = $params
->get('role');
try {
$role
->grantPermission($permission);
$violations = $role
->getTypedData()
->validate();
if ($violations
->count() !== 0) {
$error = Error::invalidParams(array_map(function (ConstraintViolationInterface $violation) {
return $violation
->getMessage();
}, iterator_to_array($violations)));
throw JsonRpcException::fromError($error);
}
return $role
->save();
} catch (EntityStorageException $e) {
$error = Error::internalError('Unable to save the user role. Error: ' . $e
->getMessage(), $role);
throw JsonRpcException::fromError($error);
}
}
/**
* {@inheritdoc}
*/
public static function outputSchema() {
return [
'type' => 'number',
];
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
AddPermissionToRole:: |
public | function |
Executes the action with the parameters passed in. Overrides ExecutableWithParamsInterface:: |
|
AddPermissionToRole:: |
public static | function |
Provides the schema that describes the results of the RPC method. Overrides JsonRpcMethodBase:: |
|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
JsonRpcMethodBase:: |
private | property | The RPC request for the current invocation. | |
JsonRpcMethodBase:: |
protected | function | The RPC request for the current invocation. | |
JsonRpcMethodBase:: |
protected | function | The RPC method definition for the current invocation. | |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
3 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
UserPermissionsBase:: |
protected | property | The permissions handler service. | |
UserPermissionsBase:: |
public static | function |
Creates an instance of the plugin. Overrides JsonRpcMethodBase:: |
|
UserPermissionsBase:: |
public | function |
UserPermissions constructor. Overrides JsonRpcMethodBase:: |