You are here

class GroupPermissionsTypeSpecificForm in Group 2.0.x

Same name and namespace in other branches
  1. 8 src/Form/GroupPermissionsTypeSpecificForm.php \Drupal\group\Form\GroupPermissionsTypeSpecificForm

Provides the user permissions administration form for a specific group type.

Hierarchy

Expanded class hierarchy of GroupPermissionsTypeSpecificForm

1 string reference to 'GroupPermissionsTypeSpecificForm'
group.routing.yml in ./group.routing.yml
group.routing.yml

File

src/Form/GroupPermissionsTypeSpecificForm.php, line 15

Namespace

Drupal\group\Form
View source
class GroupPermissionsTypeSpecificForm extends GroupPermissionsForm {

  /**
   * The specific group role for this form.
   *
   * @var \Drupal\group\Entity\GroupTypeInterface
   */
  protected $groupType;

  /**
   * The entity type manager.
   *
   * @var \Drupal\Core\Entity\EntityTypeManagerInterface
   */
  protected $entityTypeManager;

  /**
   * Constructs a new GroupPermissionsTypeSpecificForm.
   *
   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
   *   The entity type manager.
   * @param \Drupal\group\Access\GroupPermissionHandlerInterface $permission_handler
   *   The group permission handler.
   * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
   *   The module handler.
   */
  public function __construct(EntityTypeManagerInterface $entity_type_manager, GroupPermissionHandlerInterface $permission_handler, ModuleHandlerInterface $module_handler) {
    parent::__construct($permission_handler, $module_handler);
    $this->entityTypeManager = $entity_type_manager;
  }

  /**
   * {@inheritdoc}
   */
  public static function create(ContainerInterface $container) {
    return new static($container
      ->get('entity_type.manager'), $container
      ->get('group.permissions'), $container
      ->get('module_handler'));
  }

  /**
   * {@inheritdoc}
   */
  protected function getInfo() {
    $list = [
      'role_info' => [
        '#prefix' => '<p>' . $this
          ->t('Group types use three special roles:') . '</p>',
        '#theme' => 'item_list',
        '#items' => [
          [
            '#markup' => $this
              ->t('<strong>Anonymous:</strong> This is the same as the global Anonymous role, meaning the user has no account.'),
          ],
          [
            '#markup' => $this
              ->t('<strong>Outsider:</strong> This means the user has an account on the site, but is not a member of the group.'),
          ],
          [
            '#markup' => $this
              ->t('<strong>Member:</strong> The default role for anyone in the group. Behaves like the "Authenticated user" role does globally.'),
          ],
        ],
      ],
    ];
    return $list + parent::getInfo();
  }

  /**
   * {@inheritdoc}
   */
  protected function getGroupType() {
    return $this->groupType;
  }

  /**
   * {@inheritdoc}
   */
  protected function getGroupRoles() {
    $properties = [
      'group_type' => $this->groupType
        ->id(),
      'permissions_ui' => TRUE,
    ];
    return $this->entityTypeManager
      ->getStorage('group_role')
      ->loadByProperties($properties);
  }

  /**
   * Form constructor.
   *
   * @param array $form
   *   An associative array containing the structure of the form.
   * @param \Drupal\Core\Form\FormStateInterface $form_state
   *   The current state of the form.
   * @param \Drupal\group\Entity\GroupTypeInterface $group_type
   *   The group type used for this form.
   *
   * @return array
   *   The form structure.
   */
  public function buildForm(array $form, FormStateInterface $form_state, GroupTypeInterface $group_type = NULL) {
    $this->groupType = $group_type;
    return parent::buildForm($form, $form_state);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
DependencySerializationTrait::$_entityStorages protected property
DependencySerializationTrait::$_serviceIds protected property
DependencySerializationTrait::__sleep public function 2
DependencySerializationTrait::__wakeup public function 2
FormBase::$configFactory protected property The config factory. 3
FormBase::$requestStack protected property The request stack. 1
FormBase::$routeMatch protected property The route match.
FormBase::config protected function Retrieves a configuration object.
FormBase::configFactory protected function Gets the config factory for this form. 3
FormBase::container private function Returns the service container.
FormBase::currentUser protected function Gets the current user.
FormBase::getRequest protected function Gets the request object.
FormBase::getRouteMatch protected function Gets the route match.
FormBase::logger protected function Gets the logger for a specific channel.
FormBase::redirect protected function Returns a redirect response object for the specified route.
FormBase::resetConfigFactory public function Resets the configuration factory.
FormBase::setConfigFactory public function Sets the config factory for this form.
FormBase::setRequestStack public function Sets the request stack object to use.
FormBase::validateForm public function Form validation handler. Overrides FormInterface::validateForm 72
GroupPermissionsForm::$groupPermissionHandler protected property The permission handler.
GroupPermissionsForm::$moduleHandler protected property The module handler.
GroupPermissionsForm::getFormId public function Returns a unique string identifying the form. Overrides FormInterface::getFormId
GroupPermissionsForm::getPermissions protected function Gets the permissions to display in this form.
GroupPermissionsForm::submitForm function Form submission handler. Overrides FormInterface::submitForm
GroupPermissionsTypeSpecificForm::$entityTypeManager protected property The entity type manager.
GroupPermissionsTypeSpecificForm::$groupType protected property The specific group role for this form.
GroupPermissionsTypeSpecificForm::buildForm public function Form constructor. Overrides GroupPermissionsForm::buildForm
GroupPermissionsTypeSpecificForm::create public static function Instantiates a new instance of this class. Overrides GroupPermissionsForm::create 1
GroupPermissionsTypeSpecificForm::getGroupRoles protected function Gets the group roles to display in this form. Overrides GroupPermissionsForm::getGroupRoles 1
GroupPermissionsTypeSpecificForm::getGroupType protected function Gets the group type to build the form for. Overrides GroupPermissionsForm::getGroupType
GroupPermissionsTypeSpecificForm::getInfo protected function Gets a few basic instructions to show the user. Overrides GroupPermissionsForm::getInfo 1
GroupPermissionsTypeSpecificForm::__construct public function Constructs a new GroupPermissionsTypeSpecificForm. Overrides GroupPermissionsForm::__construct 1
LoggerChannelTrait::$loggerFactory protected property The logger channel factory service.
LoggerChannelTrait::getLogger protected function Gets the logger for a specific channel.
LoggerChannelTrait::setLoggerFactory public function Injects the logger channel factory.
MessengerTrait::$messenger protected property The messenger. 27
MessengerTrait::messenger public function Gets the messenger. 27
MessengerTrait::setMessenger public function Sets the messenger.
RedirectDestinationTrait::$redirectDestination protected property The redirect destination service. 1
RedirectDestinationTrait::getDestinationArray protected function Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url.
RedirectDestinationTrait::getRedirectDestination protected function Returns the redirect destination service.
RedirectDestinationTrait::setRedirectDestination public function Sets the redirect destination service.
StringTranslationTrait::$stringTranslation protected property The string translation service. 4
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.