class AddMembersToGroup in Open Social 10.1.x
Same name and namespace in other branches
- 8.9 modules/social_features/social_group/src/Plugin/Action/AddMembersToGroup.php \Drupal\social_group\Plugin\Action\AddMembersToGroup
- 8.5 modules/social_features/social_group/src/Plugin/Action/AddMembersToGroup.php \Drupal\social_group\Plugin\Action\AddMembersToGroup
- 8.6 modules/social_features/social_group/src/Plugin/Action/AddMembersToGroup.php \Drupal\social_group\Plugin\Action\AddMembersToGroup
- 8.7 modules/social_features/social_group/src/Plugin/Action/AddMembersToGroup.php \Drupal\social_group\Plugin\Action\AddMembersToGroup
- 8.8 modules/social_features/social_group/src/Plugin/Action/AddMembersToGroup.php \Drupal\social_group\Plugin\Action\AddMembersToGroup
- 10.3.x modules/social_features/social_group/src/Plugin/Action/AddMembersToGroup.php \Drupal\social_group\Plugin\Action\AddMembersToGroup
- 10.0.x modules/social_features/social_group/src/Plugin/Action/AddMembersToGroup.php \Drupal\social_group\Plugin\Action\AddMembersToGroup
- 10.2.x modules/social_features/social_group/src/Plugin/Action/AddMembersToGroup.php \Drupal\social_group\Plugin\Action\AddMembersToGroup
Change group membership role.
Plugin annotation
@Action(
id = "social_group_add_members_to_group_action",
label = @Translation("Add members to group"),
type = "user",
confirm = TRUE,
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\Core\Action\ActionBase implements ActionInterface
- class \Drupal\views_bulk_operations\Action\ViewsBulkOperationsActionBase implements ConfigurableInterface, ViewsBulkOperationsActionInterface uses ViewsBulkOperationsActionCompletedTrait
- class \Drupal\social_group\Plugin\Action\AddMembersToGroup implements ContainerFactoryPluginInterface, PluginFormInterface
- class \Drupal\views_bulk_operations\Action\ViewsBulkOperationsActionBase implements ConfigurableInterface, ViewsBulkOperationsActionInterface uses ViewsBulkOperationsActionCompletedTrait
- class \Drupal\Core\Action\ActionBase implements ActionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of AddMembersToGroup
File
- modules/
social_features/ social_group/ src/ Plugin/ Action/ AddMembersToGroup.php, line 26
Namespace
Drupal\social_group\Plugin\ActionView source
class AddMembersToGroup extends ViewsBulkOperationsActionBase implements ContainerFactoryPluginInterface, PluginFormInterface {
/**
* The group storage.
*
* @var \Drupal\Core\Entity\EntityStorageInterface
*/
protected $storage;
/**
* Constructs a ViewsBulkOperationSendEmail object.
*
* @param array $configuration
* A configuration array containing information about the plugin instance.
* @param string $plugin_id
* The plugin ID for the plugin instance.
* @param mixed $plugin_definition
* The plugin implementation definition.
* @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
* The entity type manager.
*/
public function __construct(array $configuration, $plugin_id, $plugin_definition, EntityTypeManagerInterface $entity_type_manager) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->storage = $entity_type_manager
->getStorage('group');
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
return new static($configuration, $plugin_id, $plugin_definition, $container
->get('entity_type.manager'));
}
/**
* {@inheritdoc}
*/
public function execute($entity = NULL) {
// Load the Group.
$group = Group::load($this->configuration['groups']);
if (NULL !== $group) {
// Check if user already is a member.
$is_member = $group
->getMember($entity);
// If that is not the case we can add it to the group.
if (!$is_member) {
$group
->addMember($entity);
return $this
->t('Amount of users added to group');
}
// Return this when user is already a member.
return $this
->t('Amount of existing members');
}
// Fail safe if something went wrong.
return $this
->t('Amount of users added not added');
}
/**
* {@inheritdoc}
*/
public function access($object, AccountInterface $account = NULL, $return_as_object = FALSE) {
// There is no permission to check if a user is able to be "added" to a
// group. Joining doesn't cover it since we also want people to be able
// to be added to a Secret/Closed group.
// @todo when Invite people to a group or Add members to a group permission
// lands add it.
if ($object instanceof User) {
$access = AccessResult::allowed();
}
else {
$access = AccessResult::forbidden();
}
return $return_as_object ? $access : $access
->isAllowed();
}
/**
* {@inheritdoc}
*/
public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
$form['#title'] = $this
->formatPlural($this->context['selected_count'], 'Add selected member to a group', 'Add @count selected members to a group');
$groups = Group::loadMultiple(social_group_get_all_groups());
$options = [];
// Grab all the groups, sorted by group type for the select list.
foreach ($groups as $group) {
/** @var \Drupal\group\Entity\GroupTypeInterface $group_type */
$group_type = $group
->getGroupType();
$options[$group_type
->label()][$group
->id()] = $group
->label();
}
$markup = $this
->formatPlural($this->context['selected_count'], 'Please select the group you want to add the member you have selected to', 'Please select the group you want to add the @count members you have selected to');
$form['description'] = [
'#markup' => $markup,
];
// Empty the options so we don't have a massive list of users.
unset($form['list']);
$form['groups'] = [
'#type' => 'select',
'#title' => $this
->t('Group'),
'#options' => $options,
];
$form['actions']['submit']['#value'] = $this
->t('Add to Group');
$form['actions']['submit']['#attributes']['class'] = [
'button button--primary js-form-submit form-submit btn js-form-submit btn-raised btn-primary waves-effect waves-btn waves-light',
];
$form['actions']['cancel']['#attributes']['class'] = [
'button button--danger btn btn-flat waves-effect waves-btn',
];
return $form;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
AddMembersToGroup:: |
protected | property | The group storage. | |
AddMembersToGroup:: |
public | function |
Checks object access. Overrides ActionInterface:: |
|
AddMembersToGroup:: |
public | function |
Form constructor. Overrides PluginFormInterface:: |
|
AddMembersToGroup:: |
public static | function |
Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface:: |
|
AddMembersToGroup:: |
public | function |
Executes the plugin. Overrides ExecutableInterface:: |
|
AddMembersToGroup:: |
public | function |
Constructs a ViewsBulkOperationSendEmail object. Overrides PluginBase:: |
|
DependencySerializationTrait:: |
protected | property | ||
DependencySerializationTrait:: |
protected | property | ||
DependencySerializationTrait:: |
public | function | 2 | |
DependencySerializationTrait:: |
public | function | 2 | |
MessengerTrait:: |
protected | property | The messenger. | 27 |
MessengerTrait:: |
public | function | Gets the messenger. | 27 |
MessengerTrait:: |
public | function | Sets the messenger. | |
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:: |
2 |
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. | 4 |
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. | |
ViewsBulkOperationsActionBase:: |
protected | property |
Configuration array. Overrides PluginBase:: |
|
ViewsBulkOperationsActionBase:: |
protected | property | Action context. | |
ViewsBulkOperationsActionBase:: |
protected | property | The processed view. | |
ViewsBulkOperationsActionBase:: |
public static | function | Default custom access callback. | |
ViewsBulkOperationsActionBase:: |
public | function |
Gets default configuration for this plugin. Overrides ConfigurableInterface:: |
|
ViewsBulkOperationsActionBase:: |
public | function |
Execute action on multiple entities. Overrides ActionBase:: |
1 |
ViewsBulkOperationsActionBase:: |
public | function |
Gets this plugin's configuration. Overrides ConfigurableInterface:: |
|
ViewsBulkOperationsActionBase:: |
public | function |
Sets the configuration for this plugin instance. Overrides ConfigurableInterface:: |
|
ViewsBulkOperationsActionBase:: |
public | function |
Set action context. Overrides ViewsBulkOperationsActionInterface:: |
|
ViewsBulkOperationsActionBase:: |
public | function |
Set view object. Overrides ViewsBulkOperationsActionInterface:: |
|
ViewsBulkOperationsActionBase:: |
public | function | Default configuration form submit handler. | 1 |
ViewsBulkOperationsActionBase:: |
public | function | Default configuration form validator. | |
ViewsBulkOperationsActionCompletedTrait:: |
public static | function | Batch finished callback. | 1 |
ViewsBulkOperationsActionCompletedTrait:: |
public static | function | Set message function wrapper. | 1 |
ViewsBulkOperationsActionCompletedTrait:: |
public static | function | Translation function wrapper. | 1 |