class AuthorizationProfile in Authorization 8
Defines the Authorization profile entity.
Plugin annotation
@ConfigEntityType(
id = "authorization_profile",
label = @Translation("Authorization profile"),
handlers = {
"list_builder" = "Drupal\authorization\AuthorizationProfileListBuilder",
"form" = {
"add" = "Drupal\authorization\Form\AuthorizationProfileForm",
"edit" = "Drupal\authorization\Form\AuthorizationProfileForm",
"delete" = "Drupal\authorization\Form\AuthorizationProfileDeleteForm"
}
},
config_prefix = "authorization_profile",
config_export = {
"id",
"label",
"description",
"provider",
"consumer",
"provider",
"provider_config",
"provider_mappings",
"consumer",
"consumer_config",
"consumer_mappings",
"synchronization_modes",
"synchronization_actions",
},
admin_permission = "administer site configuration",
entity_keys = {
"id" = "id",
"label" = "label",
"uuid" = "uuid"
},
links = {
"canonical" = "/admin/config/people/authorization/{authorization_profile}",
"edit-form" = "/admin/config/people/authorization/profile/{authorization_profile}/edit",
"delete-form" = "/admin/config/people/authorization/profile/{authorization_profile}/delete",
"collection" = "/admin/config/people/authorization/profile"
}
)
Hierarchy
- class \Drupal\Core\Entity\EntityBase implements EntityInterface uses RefinableCacheableDependencyTrait, DependencySerializationTrait
- class \Drupal\Core\Config\Entity\ConfigEntityBase implements ConfigEntityInterface uses SynchronizableEntityTrait, PluginDependencyTrait
- class \Drupal\authorization\Entity\AuthorizationProfile uses StringTranslationTrait
- class \Drupal\Core\Config\Entity\ConfigEntityBase implements ConfigEntityInterface uses SynchronizableEntityTrait, PluginDependencyTrait
Expanded class hierarchy of AuthorizationProfile
5 files declare their use of AuthorizationProfile
- authorization.install in ./
authorization.install - Contains installation and update hooks.
- AuthorizationController.php in src/
AuthorizationController.php - AuthorizationProfileForm.php in src/
Form/ AuthorizationProfileForm.php - ControllerTest.php in tests/
src/ Kernel/ ControllerTest.php - DrupalRolesIntegrationTest.php in authorization_drupal_roles/
tests/ src/ Kernel/ DrupalRolesIntegrationTest.php
File
- src/
Entity/ AuthorizationProfile.php, line 59
Namespace
Drupal\authorization\EntityView source
class AuthorizationProfile extends ConfigEntityBase {
use StringTranslationTrait;
/**
* The Authorization profile ID.
*
* @var string
*/
protected $id;
/**
* The Authorization profile label.
*
* @var string
*/
protected $label;
/**
* A description of the profile.
*
* @var string
*/
protected $description;
/**
* The id of the Authorization provider.
*
* @var string
*/
protected $provider;
/**
* The id of the Authorization consumer.
*
* @var string
*/
protected $consumer;
/**
* The provider plugin configuration.
*
* @var array
*/
protected $provider_config = [];
/**
* The provider plugin mappings.
*
* @var array
*/
protected $provider_mappings = [];
/**
* The provider plugin instance.
*
* @var \Drupal\authorization\provider\ProviderInterface
*/
protected $provider_plugin;
/**
* The consumer plugin configuration.
*
* @var array
*/
protected $consumer_config = [];
/**
* The consumer plugin mappings.
*
* @var array
*/
protected $consumer_mappings = [];
/**
* The consumer plugin instance.
*
* @var \Drupal\authorization\consumer\ConsumerInterface
*/
protected $consumer_plugin;
/**
* The provider plugin manager.
*
* @var \Drupal\authorization\Provider\ProviderPluginManager
*/
protected $provider_plugin_manager;
/**
* The consumer plugin maanger.
*
* @var \Drupal\authorization\Consumer\ConsumerPluginManager
*/
protected $consumer_plugin_manager;
/**
* The authorization logger channel.
*
* @var \Psr\Log\LoggerInterface
*/
protected $logger;
/**
* {@inheritdoc}
*/
public function __construct($values, $entity_type) {
parent::__construct($values, $entity_type);
// Cannot inject those without moving the logic to a controller class, (see
// https://www.drupal.org/node/2913224).
$this->provider_plugin_manager = \Drupal::service('plugin.manager.authorization.provider');
$this->consumer_plugin_manager = \Drupal::service('plugin.manager.authorization.consumer');
$this->logger = \Drupal::service('logger.channel.authorization');
}
/**
* Get description.
*
* @return string
* Description.
*/
public function getDescription() : string {
return $this->description;
}
/**
* Get the Provider ID.
*
* @return string
* Provider ID.
*/
public function getProviderId() : ?string {
return $this->provider;
}
/**
* Get the Consumer ID.
*
* @return string
* Consumer ID.
*/
public function getConsumerId() : ?string {
return $this->consumer;
}
/**
* Does the profile have valid providers?
*
* @return bool
* Provider valid.
*/
public function hasValidProvider() : bool {
if ($this->provider_plugin_manager
->getDefinition($this
->getProviderId(), FALSE)) {
return TRUE;
}
return FALSE;
}
/**
* Does the consumer have valid providers?
*
* @return bool
* Consumer valid.
*/
public function hasValidConsumer() : bool {
if ($this->consumer_plugin_manager
->getDefinition($this
->getconsumerId(), FALSE)) {
return TRUE;
}
return FALSE;
}
/**
* Get the active provider.
*
* @return \Drupal\authorization\provider\ProviderInterface|null
* The active provider.
*/
public function getProvider() : ?ProviderInterface {
if (!$this->provider_plugin || $this
->getProviderId() !== $this->provider_plugin
->getPluginId()) {
$this
->loadProviderPlugin();
}
return $this->provider_plugin;
}
/**
* Get the active consumer.
*
* @return \Drupal\authorization\consumer\ConsumerInterface|null
* The active consumer.
*/
public function getConsumer() : ?ConsumerInterface {
if (!$this->consumer_plugin || $this
->getConsumerId() !== $this->consumer_plugin
->getPluginId()) {
$this
->loadConsumerPlugin();
}
return $this->consumer_plugin;
}
/**
* Load the provider plugin.
*/
private function loadProviderPlugin() : void {
$config = $this
->getProviderConfig();
$config['profile'] = $this;
try {
$this->provider_plugin = $this->provider_plugin_manager
->createInstance($this
->getProviderId(), $config);
} catch (\Exception $e) {
$this->logger
->critical('The provider with ID "@provider" could not be retrieved for profile %profile.', [
'@provider' => $this
->getProviderId(),
'%profile' => $this
->label(),
]);
}
}
/**
* Load the consumer plugin.
*/
private function loadConsumerPlugin() : void {
$config = $this
->getConsumerConfig();
$config['profile'] = $this;
try {
$this->consumer_plugin = $this->consumer_plugin_manager
->createInstance($this
->getConsumerId(), $config);
} catch (\Exception $e) {
$this->logger
->critical('The consumer with ID "@consumer" could not be retrieved for profile %profile.', [
'@provider' => $this
->getProviderId(),
'%profile' => $this
->label(),
]);
}
}
/**
* Get the configuration of the provider.
*
* @return array
* General configuration of the provider in the profile.
*/
public function getProviderConfig() : array {
return $this->provider_config;
}
/**
* Get the configuration of the consumer.
*
* @return array
* General configuration of the consumer in the profile.
*/
public function getConsumerConfig() : array {
return $this->consumer_config;
}
/**
* Returns the currently set provider mappings.
*
* @return array
* Provider mappings.
*/
public function getProviderMappings() : array {
return $this->provider_mappings;
}
/**
* Get the consumer mappings.
*
* @return array
* Consumer mappings.
*/
public function getConsumerMappings() : array {
return $this->consumer_mappings;
}
/**
* Set the configuration of the provider.
*
* Function not in use, declared by the form directly.
*
* @param array $provider_config
* Provider config to set.
*/
public function setProviderConfig(array $provider_config) : void {
$this->provider_config = $provider_config;
}
/**
* Set the consumer configuration.
*
* Function not in use, declared by the form directly.
*
* @param array $consumer_config
* General configuration of the consumer in the profile.
*/
public function setConsumerConfig(array $consumer_config) : void {
$this->consumer_config = $consumer_config;
}
/**
* Set the provider mappings.
*
* @param array $provider_mappings
* Provider mappings.
*/
public function setProviderMappings(array $provider_mappings) : void {
$this->provider_mappings = $provider_mappings;
}
/**
* Set the consumer mappings.
*
* @param array $consumer_mappings
* Consumer mappings.
*/
public function setConsumerMappings(array $consumer_mappings) : void {
$this->consumer_mappings = $consumer_mappings;
}
/**
* Return global tokens for output regarding this profile.
*
* @return array
* Token strings.
*/
public function getTokens() : array {
$tokens = [];
$tokens['@profile_name'] = $this->label;
return $tokens;
}
/**
* Check if the profile is available.
*
* @return bool
* Profile valid.
*/
public function checkConditions() : bool {
if (!$this
->get('status')) {
return FALSE;
}
if (!$this
->getProvider()) {
return FALSE;
}
if (!$this
->getConsumer()) {
return FALSE;
}
return TRUE;
}
/**
* Perform grant and revokes.
*
* @param \Drupal\user\UserInterface $user
* The user to work on.
* @param bool $user_save
* Whether to directly save the user. Note that the object itself, passed
* by reference, can still be save outside of this scope by later code.
*
* @return \Drupal\authorization\AuthorizationResponse
* Responses.
*/
public function grantsAndRevokes(UserInterface $user, $user_save = FALSE) : AuthorizationResponse {
$provider = $this
->getProvider();
$consumer = $this
->getConsumer();
try {
$proposals = $provider
->getProposals($user);
} catch (AuthorizationSkipAuthorization $e) {
return new AuthorizationResponse((string) $this
->t('@name (skipped)', [
'@name' => $this->label,
]), TRUE, []);
}
$proposals = $provider
->sanitizeProposals($proposals);
$applied_grants = [];
// @todo This could be made more elegant with methods on this class checking
// for support on this and not checking here the array key directly.
$create_consumers = $this
->get('synchronization_actions')['create_consumers'] ?? FALSE;
$revoke_provision = $this
->get('synchronization_actions')['revoke_provider_provisioned'] ?? FALSE;
foreach ($this
->getProviderMappings() as $provider_key => $provider_mapping) {
$provider_proposals = $provider
->filterProposals($proposals, $provider_mapping);
$filtered_proposals = $consumer
->filterProposals($provider_proposals, $this
->getConsumerMappings()[$provider_key]);
if (!empty($filtered_proposals)) {
foreach ($filtered_proposals as $filtered_proposal) {
if ($create_consumers) {
$consumer
->createConsumerTarget($filtered_proposal);
}
$consumer
->grantSingleAuthorization($user, $filtered_proposal);
$applied_grants[$filtered_proposal] = $filtered_proposal;
}
}
}
if ($revoke_provision) {
$consumer
->revokeGrants($user, $applied_grants);
}
if ($user_save === TRUE) {
$user
->save();
}
return new AuthorizationResponse($this->label, FALSE, $applied_grants);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
AuthorizationProfile:: |
protected | property | The id of the Authorization consumer. | |
AuthorizationProfile:: |
protected | property | The consumer plugin configuration. | |
AuthorizationProfile:: |
protected | property | The consumer plugin mappings. | |
AuthorizationProfile:: |
protected | property | The consumer plugin instance. | |
AuthorizationProfile:: |
protected | property | The consumer plugin maanger. | |
AuthorizationProfile:: |
protected | property | A description of the profile. | |
AuthorizationProfile:: |
protected | property | The Authorization profile ID. | |
AuthorizationProfile:: |
protected | property | The Authorization profile label. | |
AuthorizationProfile:: |
protected | property | The authorization logger channel. | |
AuthorizationProfile:: |
protected | property | The id of the Authorization provider. | |
AuthorizationProfile:: |
protected | property | The provider plugin configuration. | |
AuthorizationProfile:: |
protected | property | The provider plugin mappings. | |
AuthorizationProfile:: |
protected | property | The provider plugin instance. | |
AuthorizationProfile:: |
protected | property | The provider plugin manager. | |
AuthorizationProfile:: |
public | function | Check if the profile is available. | |
AuthorizationProfile:: |
public | function | Get the active consumer. | |
AuthorizationProfile:: |
public | function | Get the configuration of the consumer. | |
AuthorizationProfile:: |
public | function | Get the Consumer ID. | |
AuthorizationProfile:: |
public | function | Get the consumer mappings. | |
AuthorizationProfile:: |
public | function | Get description. | |
AuthorizationProfile:: |
public | function | Get the active provider. | |
AuthorizationProfile:: |
public | function | Get the configuration of the provider. | |
AuthorizationProfile:: |
public | function | Get the Provider ID. | |
AuthorizationProfile:: |
public | function | Returns the currently set provider mappings. | |
AuthorizationProfile:: |
public | function | Return global tokens for output regarding this profile. | |
AuthorizationProfile:: |
public | function | Perform grant and revokes. | |
AuthorizationProfile:: |
public | function | Does the consumer have valid providers? | |
AuthorizationProfile:: |
public | function | Does the profile have valid providers? | |
AuthorizationProfile:: |
private | function | Load the consumer plugin. | |
AuthorizationProfile:: |
private | function | Load the provider plugin. | |
AuthorizationProfile:: |
public | function | Set the consumer configuration. | |
AuthorizationProfile:: |
public | function | Set the consumer mappings. | |
AuthorizationProfile:: |
public | function | Set the configuration of the provider. | |
AuthorizationProfile:: |
public | function | Set the provider mappings. | |
AuthorizationProfile:: |
public | function |
Constructs an Entity object. Overrides ConfigEntityBase:: |
|
CacheableDependencyTrait:: |
protected | property | Cache contexts. | |
CacheableDependencyTrait:: |
protected | property | Cache max-age. | |
CacheableDependencyTrait:: |
protected | property | Cache tags. | |
CacheableDependencyTrait:: |
protected | function | Sets cacheability; useful for value object constructors. | |
ConfigEntityBase:: |
private | property | Whether the config is being deleted by the uninstall process. | |
ConfigEntityBase:: |
protected | property | The language code of the entity's default language. | |
ConfigEntityBase:: |
protected | property | The original ID of the configuration entity. | |
ConfigEntityBase:: |
protected | property | The enabled/disabled status of the configuration entity. | 4 |
ConfigEntityBase:: |
protected | property | Third party entity settings. | |
ConfigEntityBase:: |
protected | property | Trust supplied data and not use configuration schema on save. | |
ConfigEntityBase:: |
protected | property | The UUID for this entity. | |
ConfigEntityBase:: |
protected | property | Information maintained by Drupal core about configuration. | |
ConfigEntityBase:: |
protected | function | Overrides \Drupal\Core\Entity\DependencyTrait:addDependency(). | |
ConfigEntityBase:: |
public | function |
Calculates dependencies and stores them in the dependency property. Overrides ConfigEntityInterface:: |
13 |
ConfigEntityBase:: |
public | function |
Creates a duplicate of the entity. Overrides EntityBase:: |
1 |
ConfigEntityBase:: |
public | function |
Disables the configuration entity. Overrides ConfigEntityInterface:: |
1 |
ConfigEntityBase:: |
public | function |
Enables the configuration entity. Overrides ConfigEntityInterface:: |
|
ConfigEntityBase:: |
public | function |
Returns the value of a property. Overrides ConfigEntityInterface:: |
|
ConfigEntityBase:: |
public | function |
Returns the cache tags that should be used to invalidate caches. Overrides EntityBase:: |
1 |
ConfigEntityBase:: |
public | function |
Gets the configuration dependency name. Overrides EntityBase:: |
|
ConfigEntityBase:: |
protected static | function | Gets the configuration manager. | |
ConfigEntityBase:: |
public | function |
Gets the configuration target identifier for the entity. Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Gets the configuration dependencies. Overrides ConfigEntityInterface:: |
|
ConfigEntityBase:: |
public | function |
Gets the original ID. Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Gets the list of third parties that store information. Overrides ThirdPartySettingsInterface:: |
|
ConfigEntityBase:: |
public | function |
Gets the value of a third-party setting. Overrides ThirdPartySettingsInterface:: |
|
ConfigEntityBase:: |
public | function |
Gets all third-party settings of a given module. Overrides ThirdPartySettingsInterface:: |
|
ConfigEntityBase:: |
protected | function | Gets the typed config manager. | |
ConfigEntityBase:: |
public | function |
Gets whether on not the data is trusted. Overrides ConfigEntityInterface:: |
|
ConfigEntityBase:: |
protected static | function |
Override to never invalidate the individual entities' cache tags; the
config system already invalidates them. Overrides EntityBase:: |
|
ConfigEntityBase:: |
protected | function |
Override to never invalidate the entity's cache tag; the config system
already invalidates it. Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Checks whether this entity is installable. Overrides ConfigEntityInterface:: |
2 |
ConfigEntityBase:: |
public | function |
Overrides Entity::isNew(). Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Returns whether this entity is being changed during the uninstall process. Overrides ConfigEntityInterface:: |
|
ConfigEntityBase:: |
public | function |
Deprecated way of generating a link to the entity. See toLink(). Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Informs the entity that entities it depends on will be deleted. Overrides ConfigEntityInterface:: |
7 |
ConfigEntityBase:: |
public static | function |
Acts on entities before they are deleted and before hooks are invoked. Overrides EntityBase:: |
8 |
ConfigEntityBase:: |
public | function |
Acts on an entity before the presave hook is invoked. Overrides EntityBase:: |
13 |
ConfigEntityBase:: |
public | function |
Saves an entity permanently. Overrides EntityBase:: |
1 |
ConfigEntityBase:: |
public | function |
Sets the value of a property. Overrides ConfigEntityInterface:: |
|
ConfigEntityBase:: |
public | function |
Sets the original ID. Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Sets the status of the configuration entity. Overrides ConfigEntityInterface:: |
|
ConfigEntityBase:: |
public | function |
Sets the value of a third-party setting. Overrides ThirdPartySettingsInterface:: |
|
ConfigEntityBase:: |
public | function | ||
ConfigEntityBase:: |
public static | function | Helper callback for uasort() to sort configuration entities by weight and label. | 6 |
ConfigEntityBase:: |
public | function |
Returns whether the configuration entity is enabled. Overrides ConfigEntityInterface:: |
4 |
ConfigEntityBase:: |
public | function |
Gets an array of all property values. Overrides EntityBase:: |
2 |
ConfigEntityBase:: |
public | function |
Gets the URL object for the entity. Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Sets that the data should be trusted. Overrides ConfigEntityInterface:: |
|
ConfigEntityBase:: |
public | function |
Unsets a third-party setting. Overrides ThirdPartySettingsInterface:: |
|
ConfigEntityBase:: |
public | function |
Gets the public URL for this entity. Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Gets the URL object for the entity. Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Overrides EntityBase:: |
4 |
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 | Aliased as: traitSleep | 1 |
DependencySerializationTrait:: |
public | function | 2 | |
DependencyTrait:: |
protected | property | The object's dependencies. | |
DependencyTrait:: |
protected | function | Adds multiple dependencies. | |
DependencyTrait:: |
protected | function | Adds a dependency. Aliased as: addDependencyTrait | |
EntityBase:: |
protected | property | Boolean indicating whether the entity should be forced to be new. | |
EntityBase:: |
protected | property | The entity type. | |
EntityBase:: |
protected | property | A typed data object wrapping this entity. | |
EntityBase:: |
public | function |
Checks data value access. Overrides AccessibleInterface:: |
1 |
EntityBase:: |
public | function |
Gets the bundle of the entity. Overrides EntityInterface:: |
1 |
EntityBase:: |
public static | function |
Constructs a new entity object, without permanently saving it. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Deletes an entity permanently. Overrides EntityInterface:: |
2 |
EntityBase:: |
public | function |
Enforces an entity to be new. Overrides EntityInterface:: |
|
EntityBase:: |
protected | function | Gets the entity manager. | |
EntityBase:: |
protected | function | Gets the entity type bundle info service. | |
EntityBase:: |
protected | function | Gets the entity type manager. | |
EntityBase:: |
public | function |
The cache contexts associated with this object. Overrides CacheableDependencyTrait:: |
|
EntityBase:: |
public | function |
The maximum age for which this object may be cached. Overrides CacheableDependencyTrait:: |
|
EntityBase:: |
public | function |
The cache tags associated with this object. Overrides CacheableDependencyTrait:: |
|
EntityBase:: |
public | function |
Gets the key that is used to store configuration dependencies. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Gets the entity type definition. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Gets the ID of the type of the entity. Overrides EntityInterface:: |
|
EntityBase:: |
protected | function | The list cache tags to invalidate for this entity. | |
EntityBase:: |
public | function |
Gets a typed data object for this entity object. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Indicates if a link template exists for a given key. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Gets the identifier. Overrides EntityInterface:: |
11 |
EntityBase:: |
public | function |
Gets the label of the entity. Overrides EntityInterface:: |
6 |
EntityBase:: |
public | function |
Gets the language of the entity. Overrides EntityInterface:: |
1 |
EntityBase:: |
protected | function | Gets the language manager. | |
EntityBase:: |
protected | function | Gets an array link templates. | 1 |
EntityBase:: |
public static | function |
Loads an entity. Overrides EntityInterface:: |
|
EntityBase:: |
public static | function |
Loads one or more entities. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Acts on a created entity before hooks are invoked. Overrides EntityInterface:: |
4 |
EntityBase:: |
public static | function |
Acts on deleted entities before the delete hook is invoked. Overrides EntityInterface:: |
16 |
EntityBase:: |
public static | function |
Acts on loaded entities. Overrides EntityInterface:: |
2 |
EntityBase:: |
public | function |
Acts on a saved entity before the insert or update hook is invoked. Overrides EntityInterface:: |
14 |
EntityBase:: |
public static | function |
Changes the values of an entity before it is created. Overrides EntityInterface:: |
5 |
EntityBase:: |
public | function |
Gets a list of entities referenced by this entity. Overrides EntityInterface:: |
1 |
EntityBase:: |
public | function |
Generates the HTML for a link to this entity. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Gets a list of URI relationships supported by this entity. Overrides EntityInterface:: |
|
EntityBase:: |
protected | function | Gets an array of placeholders for this entity. | 2 |
EntityBase:: |
public | function |
Gets the entity UUID (Universally Unique Identifier). Overrides EntityInterface:: |
1 |
EntityBase:: |
protected | function | Gets the UUID generator. | |
PluginDependencyTrait:: |
protected | function | Calculates and adds dependencies of a specific plugin instance. | 1 |
PluginDependencyTrait:: |
protected | function | Calculates and returns dependencies of a specific plugin instance. | |
PluginDependencyTrait:: |
protected | function | Wraps the module handler. | 1 |
PluginDependencyTrait:: |
protected | function | Wraps the theme handler. | 1 |
RefinableCacheableDependencyTrait:: |
public | function | 1 | |
RefinableCacheableDependencyTrait:: |
public | function | ||
RefinableCacheableDependencyTrait:: |
public | function | ||
RefinableCacheableDependencyTrait:: |
public | function | ||
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. | |
SynchronizableEntityTrait:: |
protected | property | Whether this entity is being created, updated or deleted through a synchronization process. | |
SynchronizableEntityTrait:: |
public | function | ||
SynchronizableEntityTrait:: |
public | function |