Loading ginvite.module +23 −0 Original line number Diff line number Diff line Loading @@ -6,9 +6,12 @@ */ use Drupal\Component\Utility\Html; use Drupal\Core\Access\AccessResult; use Drupal\Core\Entity\EntityInterface; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Render\BubbleableMetadata; use Drupal\Core\Routing\RouteMatchInterface; use Drupal\Core\Session\AccountInterface; use Drupal\Core\Url; use Drupal\ginvite\Event\UserLoginWithInvitationEvent; use Drupal\ginvite\Event\UserRegisteredFromInvitationEvent; Loading Loading @@ -466,3 +469,23 @@ function ginvite_user_login(UserInterface $user) { $event_dispatcher->dispatch($event, UserLoginWithInvitationEvent::EVENT_NAME); } } /** * Implements hook_ENTITY_TYPE_access(). */ function ginvite_group_access(EntityInterface $entity, $operation, AccountInterface $account) { if ($operation == 'view' || $operation == 'view label') { $properties = [ 'entity_id' => $account->id(), 'gid' => $entity->id(), 'invitation_status' => GroupInvitation::INVITATION_PENDING, ]; $invitations = \Drupal::service('ginvite.invitation_loader')->loadByProperties($properties); if (!empty($invitations)) { return AccessResult::allowed(); } } return AccessResult::neutral(); } Loading
ginvite.module +23 −0 Original line number Diff line number Diff line Loading @@ -6,9 +6,12 @@ */ use Drupal\Component\Utility\Html; use Drupal\Core\Access\AccessResult; use Drupal\Core\Entity\EntityInterface; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Render\BubbleableMetadata; use Drupal\Core\Routing\RouteMatchInterface; use Drupal\Core\Session\AccountInterface; use Drupal\Core\Url; use Drupal\ginvite\Event\UserLoginWithInvitationEvent; use Drupal\ginvite\Event\UserRegisteredFromInvitationEvent; Loading Loading @@ -466,3 +469,23 @@ function ginvite_user_login(UserInterface $user) { $event_dispatcher->dispatch($event, UserLoginWithInvitationEvent::EVENT_NAME); } } /** * Implements hook_ENTITY_TYPE_access(). */ function ginvite_group_access(EntityInterface $entity, $operation, AccountInterface $account) { if ($operation == 'view' || $operation == 'view label') { $properties = [ 'entity_id' => $account->id(), 'gid' => $entity->id(), 'invitation_status' => GroupInvitation::INVITATION_PENDING, ]; $invitations = \Drupal::service('ginvite.invitation_loader')->loadByProperties($properties); if (!empty($invitations)) { return AccessResult::allowed(); } } return AccessResult::neutral(); }