Commit c6305fd3 authored by Nikolay Lobachev's avatar Nikolay Lobachev
Browse files

Issue #3301006 by LOBsTerr: Replace custom route access check with GroupInstalledContentAccessCheck

parent af51db40
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ ginvite.invitation.accept:
    _controller: '\Drupal\ginvite\Controller\InvitationOperations::accept'
    _title: 'Accept invitation and join group'
  requirements:
    _group_installed_content: 'group_invitation'
    _custom_access: '\Drupal\ginvite\Controller\InvitationOperations::checkAccess'
  options:
      parameters:
@@ -28,7 +29,7 @@ ginvite.invitation.bulk:
    _form: '\Drupal\ginvite\Form\BulkGroupInvitation'
    _title_callback: '\Drupal\ginvite\Controller\InvitationOperations::invitationTitle'
  requirements:
    _custom_access: '\Drupal\ginvite\Controller\InvitationOperations::access'
    _group_installed_content: 'group_invitation'
  options:
    parameters:
      group:
@@ -40,7 +41,8 @@ ginvite.invitation.bulk.confirm:
    _form: '\Drupal\ginvite\Form\BulkGroupInvitationConfirm'
    _title_callback: '\Drupal\ginvite\Controller\InvitationOperations::invitationTitle'
  requirements:
    _custom_access: '\Drupal\ginvite\Controller\InvitationOperations::access'
    _group_permission: 'invite users to group'
    _group_installed_content: 'group_invitation'
  options:
    parameters:
      group:
+0 −24
Original line number Diff line number Diff line
@@ -71,30 +71,6 @@ class InvitationOperations extends ControllerBase {
    );
  }

  /**
   * Custom access check for the invitation routes.
   *
   * @param \Drupal\Core\Session\AccountInterface $account
   *   The user account.
   * @param \Drupal\group\Entity\GroupInterface $group
   *   The group entity.
   *
   * @return \Drupal\Core\Access\AccessResultInterface
   */
  public function access(AccountInterface $account, GroupInterface $group) {
    // Check if plugin is enabled for this group type.
    if (!$group->getGroupType()->hasContentPlugin('group_invitation')) {
      return AccessResult::forbidden();
    }

    // Check if user account has permission.
    if ($group->hasPermission('invite users to group', $account)) {
      return AccessResult::allowed();
    }

    return AccessResult::forbidden();
  }

  /**
   * Create user membership and change invitation status.
   *