diff --git a/core/modules/migrate_drupal_ui/migrate_drupal_ui.routing.yml b/core/modules/migrate_drupal_ui/migrate_drupal_ui.routing.yml index 4b4bd08f237..2d99abd76e0 100644 --- a/core/modules/migrate_drupal_ui/migrate_drupal_ui.routing.yml +++ b/core/modules/migrate_drupal_ui/migrate_drupal_ui.routing.yml @@ -4,7 +4,7 @@ migrate_drupal_ui.upgrade: _form: '\Drupal\migrate_drupal_ui\Form\MigrateUpgradeForm' _title: 'Upgrade' requirements: - _permission: 'administer software updates' + _custom_access: '\Drupal\migrate_drupal_ui\MigrateAccessCheck::checkAccess' options: _admin_route: TRUE @@ -13,6 +13,6 @@ migrate_drupal_ui.log: defaults: _controller: '\Drupal\migrate_drupal_ui\Controller\MigrateController::showLog' requirements: - _permission: 'administer software updates' + _custom_access: '\Drupal\migrate_drupal_ui\MigrateAccessCheck::checkAccess' options: _admin_route: TRUE diff --git a/core/modules/migrate_drupal_ui/src/MigrateAccessCheck.php b/core/modules/migrate_drupal_ui/src/MigrateAccessCheck.php new file mode 100644 index 00000000000..e66fad75aed --- /dev/null +++ b/core/modules/migrate_drupal_ui/src/MigrateAccessCheck.php @@ -0,0 +1,40 @@ +id() === 1)->mergeCacheMaxAge(0); + } + +} diff --git a/core/modules/migrate_drupal_ui/src/Tests/MigrateAccessTest.php b/core/modules/migrate_drupal_ui/src/Tests/MigrateAccessTest.php new file mode 100644 index 00000000000..88fe0bc462f --- /dev/null +++ b/core/modules/migrate_drupal_ui/src/Tests/MigrateAccessTest.php @@ -0,0 +1,42 @@ +drupalLogin($this->rootUser); + $this->drupalGet('upgrade'); + $this->assertResponse(200); + $this->assertText(t('Drupal Upgrade')); + + $user = $this->createUser(['administer software updates']); + $this->drupalLogin($user); + $this->drupalGet('upgrade'); + $this->assertResponse(403); + $this->assertNoText(t('Drupal Upgrade')); + } + +} diff --git a/core/modules/migrate_drupal_ui/src/Tests/MigrateUpgradeTestBase.php b/core/modules/migrate_drupal_ui/src/Tests/MigrateUpgradeTestBase.php index a4911aa3d3e..be0a4c65ce2 100644 --- a/core/modules/migrate_drupal_ui/src/Tests/MigrateUpgradeTestBase.php +++ b/core/modules/migrate_drupal_ui/src/Tests/MigrateUpgradeTestBase.php @@ -42,8 +42,7 @@ abstract class MigrateUpgradeTestBase extends WebTestBase { $this->createMigrationConnection(); $this->sourceDatabase = Database::getConnection('default', 'migrate_drupal_ui'); - // Create and log in as user 1. Migrations in the UI can only be performed - // as user 1 once https://www.drupal.org/node/2675066 lands. + // Log in as user 1. Migrations in the UI can only be performed as user 1. $this->drupalLogin($this->rootUser); }