Commit 13db5f38 authored by Redwan Jamous's avatar Redwan Jamous Committed by Sean Adams-Hiett
Browse files

Issue #3305765 by pyrello, RedwanJamous: Add module specific permission to...

Issue #3305765 by pyrello, RedwanJamous: Add module specific permission to restrict configuration page
parent e953c2b4
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
administer layout builder direct add settings:
  title: 'Access layout builder direct add configuration page'
  description: 'Access and edit the configuration for layout builder direct add module.'
+1 −1
Original line number Diff line number Diff line
@@ -4,6 +4,6 @@ lb_direct_add.settings_form:
    _form: '\Drupal\lb_direct_add\Form\SettingsForm'
    _title: 'Layout Builder Direct Add Configuration'
  requirements:
    _permission: 'access administration pages'
    _permission: 'administer layout builder direct add settings'
  options:
    _admin_route: TRUE
+65 −0
Original line number Diff line number Diff line
<?php

namespace Drupal\Tests\lb_direct_add\Functional;

use Drupal\Tests\BrowserTestBase;

/**
 * Contains test case for testing admin permission.
 *
 * @group lb_direct_add
 */
class LayoutBuilderDirectAddPermissionsTest extends BrowserTestBase {
  /**
   * A user with administration permissions.
   *
   * @var \Drupal\user\UserInterface
   */
  protected $adminUser;

  /**
   * A user with administration permissions.
   *
   * @var \Drupal\user\UserInterface
   */
  protected $nonAdminUser;

  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'lb_direct_add',
  ];

  /**
   * {@inheritdoc}
   */
  protected $defaultTheme = 'stark';

  /**
   * {@inheritdoc}
   */
  protected function setUp(): void {
    parent::setUp();
    $this->adminUser = $this->drupalCreateUser(['administer layout builder direct add settings']);
    $this->nonAdminUser = $this->drupalCreateUser();
  }

  /**
   * Tests that a user with admin permission can access the admin page.
   */
  public function testAdminPermission() {
    $assert = $this->assertSession();

    // Non-admin user should not be able to access the admin page.
    $this->drupalLogin($this->nonAdminUser);
    $this->drupalGet('admin/config/content/layout-builder-direct-add');
    $assert->statusCodeEquals(403);

    // Admin user should be able to access the admin page.
    $this->drupalLogin($this->adminUser);
    $this->drupalGet('admin/config/content/layout-builder-direct-add');
    $assert->statusCodeEquals(200);
  }

}