class EventAnEnrollController in Open Social 10.1.x
Same name and namespace in other branches
- 8.9 modules/social_features/social_event/modules/social_event_an_enroll/src/Controller/EventAnEnrollController.php \Drupal\social_event_an_enroll\Controller\EventAnEnrollController
- 8.3 modules/social_features/social_event/modules/social_event_an_enroll/src/Controller/EventAnEnrollController.php \Drupal\social_event_an_enroll\Controller\EventAnEnrollController
- 8.4 modules/social_features/social_event/modules/social_event_an_enroll/src/Controller/EventAnEnrollController.php \Drupal\social_event_an_enroll\Controller\EventAnEnrollController
- 8.5 modules/social_features/social_event/modules/social_event_an_enroll/src/Controller/EventAnEnrollController.php \Drupal\social_event_an_enroll\Controller\EventAnEnrollController
- 8.6 modules/social_features/social_event/modules/social_event_an_enroll/src/Controller/EventAnEnrollController.php \Drupal\social_event_an_enroll\Controller\EventAnEnrollController
- 8.7 modules/social_features/social_event/modules/social_event_an_enroll/src/Controller/EventAnEnrollController.php \Drupal\social_event_an_enroll\Controller\EventAnEnrollController
- 8.8 modules/social_features/social_event/modules/social_event_an_enroll/src/Controller/EventAnEnrollController.php \Drupal\social_event_an_enroll\Controller\EventAnEnrollController
- 10.3.x modules/social_features/social_event/modules/social_event_an_enroll/src/Controller/EventAnEnrollController.php \Drupal\social_event_an_enroll\Controller\EventAnEnrollController
- 10.0.x modules/social_features/social_event/modules/social_event_an_enroll/src/Controller/EventAnEnrollController.php \Drupal\social_event_an_enroll\Controller\EventAnEnrollController
- 10.2.x modules/social_features/social_event/modules/social_event_an_enroll/src/Controller/EventAnEnrollController.php \Drupal\social_event_an_enroll\Controller\EventAnEnrollController
Class EventAnEnrollController.
@package Drupal\social_event_an_enroll\Controller
Hierarchy
- class \Drupal\Core\Controller\ControllerBase implements ContainerInjectionInterface uses LoggerChannelTrait, MessengerTrait, RedirectDestinationTrait, StringTranslationTrait
- class \Drupal\social_event_an_enroll\Controller\EventAnEnrollController
Expanded class hierarchy of EventAnEnrollController
File
- modules/
social_features/ social_event/ modules/ social_event_an_enroll/ src/ Controller/ EventAnEnrollController.php, line 21
Namespace
Drupal\social_event_an_enroll\ControllerView source
class EventAnEnrollController extends ControllerBase {
/**
* The route match.
*
* @var \Drupal\Core\Routing\RouteMatchInterface
*/
protected $routeMatch;
/**
* The entity type manager.
*
* @var \Drupal\Core\Entity\EntityTypeManagerInterface
*/
protected $entityTypeManager;
/**
* The config factory.
*
* @var \Drupal\Core\Config\ConfigFactoryInterface
*/
protected $configFactory;
/**
* SocialTopicController constructor.
*
* @param \Drupal\Core\Routing\RouteMatchInterface $routeMatch
* The route match object.
* @param \Drupal\Core\Entity\EntityTypeManagerInterface $entityTypeManager
* The entity type manager.
* @param \Drupal\Core\Config\ConfigFactoryInterface $configFactory
* The config factory.
*/
public function __construct(RouteMatchInterface $routeMatch, EntityTypeManagerInterface $entityTypeManager, ConfigFactoryInterface $configFactory) {
$this->routeMatch = $routeMatch;
$this->entityTypeManager = $entityTypeManager;
$this->configFactory = $configFactory;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static($container
->get('current_route_match'), $container
->get('entity_type.manager'), $container
->get('config.factory'));
}
/**
* Determines if user has access to enroll form.
*
* @param \Drupal\node\NodeInterface $node
* The node.
*
* @return \Drupal\Core\Access\AccessResultAllowed|\Drupal\Core\Access\AccessResultForbidden
* Allowed or not allowed.
*/
public function enrollAccess(NodeInterface $node) {
$config = $this
->config('social_event_an_enroll.settings');
$is_global_enabled = $config
->get('event_an_enroll');
$is_event = $node
->getType() === 'event';
$is_public = $node
->get('field_content_visibility')
->getString() === 'public';
$is_event_an_enroll = !empty($node
->get('field_event_an_enroll')->value);
if ($is_global_enabled && $is_event && $is_public && $is_event_an_enroll) {
return AccessResult::allowed();
}
return AccessResult::forbidden();
}
/**
* Enroll dialog callback.
*/
public function enrollDialog(NodeInterface $node) {
// Fetch the user settings.
$userSettings = $this->configFactory
->get('user.settings');
$action_links['login'] = [
'uri' => Url::fromRoute('user.login', [], [
'query' => [
'destination' => Url::fromRoute('entity.node.canonical', [
'node' => $node
->id(),
])
->toString(),
],
])
->toString(),
];
// Check if users are allowed to register.
if ('admin_only' !== $userSettings
->get('register')) {
$action_links['register'] = [
'uri' => Url::fromRoute('user.register', [], [
'query' => [
'destination' => Url::fromRoute('entity.node.canonical', [
'node' => $node
->id(),
])
->toString(),
],
])
->toString(),
];
}
$action_links['guest'] = [
'uri' => Url::fromRoute('social_event_an_enroll.enroll_form', [
'node' => $node
->id(),
], [])
->toString(),
];
return [
'#theme' => 'event_an_enroll_dialog',
'#links' => $action_links,
];
}
/**
* The _title_callback for the event enroll dialog route.
*
* @param \Drupal\node\NodeInterface $node
* Node.
*
* @return string
* The page title.
*/
public function enrollTitle(NodeInterface $node) {
return $this
->t('Enroll in @label Event', [
'@label' => $node
->label(),
]);
}
/**
* Checks access for manage enrollment page.
*
* @param \Drupal\Core\Session\AccountInterface $account
* Run access checks for this account.
*
* @return \Drupal\Core\Access\AccessResult
* Check standard and custom permissions.
*/
public function enrollManageAccess(AccountInterface $account) {
if (AccessResult::allowedIfHasPermission($account, 'manage all enrollments')
->isAllowed()) {
return AccessResult::allowed();
}
else {
/** @var \Drupal\node\Entity\Node $node */
$node = $this->routeMatch
->getParameter('node');
if (!is_null($node) && !is_object($node)) {
$node = $this->entityTypeManager
->getStorage('node')
->load($node);
}
if ($node instanceof NodeInterface) {
return SocialEventManagersAccessHelper::getEntityAccessResult($node, 'update', $account);
}
}
return AccessResult::forbidden();
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ControllerBase:: |
protected | property | The current user service. | 1 |
ControllerBase:: |
protected | property | The entity form builder. | |
ControllerBase:: |
protected | property | The form builder. | 2 |
ControllerBase:: |
protected | property | The key-value storage. | 1 |
ControllerBase:: |
protected | property | The language manager. | 1 |
ControllerBase:: |
protected | property | The module handler. | 2 |
ControllerBase:: |
protected | property | The state service. | |
ControllerBase:: |
protected | function | Returns the requested cache bin. | |
ControllerBase:: |
protected | function | Retrieves a configuration object. | |
ControllerBase:: |
private | function | Returns the service container. | |
ControllerBase:: |
protected | function | Returns the current user. | 1 |
ControllerBase:: |
protected | function | Retrieves the entity form builder. | |
ControllerBase:: |
protected | function | Retrieves the entity type manager. | |
ControllerBase:: |
protected | function | Returns the form builder service. | 2 |
ControllerBase:: |
protected | function | Returns a key/value storage collection. | 1 |
ControllerBase:: |
protected | function | Returns the language manager service. | 1 |
ControllerBase:: |
protected | function | Returns the module handler. | 2 |
ControllerBase:: |
protected | function | Returns a redirect response object for the specified route. | |
ControllerBase:: |
protected | function | Returns the state storage service. | |
EventAnEnrollController:: |
protected | property |
The config factory. Overrides ControllerBase:: |
|
EventAnEnrollController:: |
protected | property |
The entity type manager. Overrides ControllerBase:: |
|
EventAnEnrollController:: |
protected | property | The route match. | |
EventAnEnrollController:: |
public static | function |
Instantiates a new instance of this class. Overrides ControllerBase:: |
|
EventAnEnrollController:: |
public | function | Determines if user has access to enroll form. | |
EventAnEnrollController:: |
public | function | Enroll dialog callback. | |
EventAnEnrollController:: |
public | function | Checks access for manage enrollment page. | |
EventAnEnrollController:: |
public | function | The _title_callback for the event enroll dialog route. | |
EventAnEnrollController:: |
public | function | SocialTopicController constructor. | |
LoggerChannelTrait:: |
protected | property | The logger channel factory service. | |
LoggerChannelTrait:: |
protected | function | Gets the logger for a specific channel. | |
LoggerChannelTrait:: |
public | function | Injects the logger channel factory. | |
MessengerTrait:: |
protected | property | The messenger. | 27 |
MessengerTrait:: |
public | function | Gets the messenger. | 27 |
MessengerTrait:: |
public | function | Sets the messenger. | |
RedirectDestinationTrait:: |
protected | property | The redirect destination service. | 1 |
RedirectDestinationTrait:: |
protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |
RedirectDestinationTrait:: |
protected | function | Returns the redirect destination service. | |
RedirectDestinationTrait:: |
public | function | Sets the redirect destination service. | |
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. |