reverted: --- b/core/lib/Drupal/Core/Config/Entity/ConfigAccessController.php +++ /dev/null @@ -1,34 +0,0 @@ -entityType->hasKey('status'); - $status_is_toggleable = $operation == 'disable' ? $entity->status() : !$entity->status(); - // We need to check access to an additional operation, so self::access() - // must be called. - return $has_status && $status_is_toggleable && $this->access($entity, 'update', $langcode, $account); - } - return parent::checkAccess($entity, $operation, $langcode, $account); - } - -} diff -u b/core/modules/block/lib/Drupal/block/BlockAccessController.php b/core/modules/block/lib/Drupal/block/BlockAccessController.php --- b/core/modules/block/lib/Drupal/block/BlockAccessController.php +++ b/core/modules/block/lib/Drupal/block/BlockAccessController.php @@ -2,12 +2,12 @@ /** * @file - * Contains \Drupal\block\BlockAccessController. + * Contains \Drupal\block\BlockEntityAccessController. */ namespace Drupal\block; -use Drupal\Core\Config\Entity\ConfigAccessController; +use Drupal\Core\Config\Entity\ConfigEntityAccessController; use Drupal\Core\Entity\EntityControllerInterface; use Drupal\Core\Entity\EntityInterface; use Drupal\Core\Entity\EntityTypeInterface; @@ -19,7 +19,7 @@ /** * Provides a Block access controller. */ -class BlockAccessController extends ConfigAccessController implements EntityControllerInterface { +class BlockEntityAccessController extends ConfigEntityAccessController implements EntityControllerInterface { /** * The node grant storage. @@ -29,7 +29,7 @@ protected $aliasManager; /** - * Constructs a BlockAccessController object. + * Constructs a BlockEntityAccessController object. * * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type * The entity type definition. diff -u b/core/modules/config/tests/config_test/lib/Drupal/config_test/ConfigTestAccessController.php b/core/modules/config/tests/config_test/lib/Drupal/config_test/ConfigTestAccessController.php --- b/core/modules/config/tests/config_test/lib/Drupal/config_test/ConfigTestAccessController.php +++ b/core/modules/config/tests/config_test/lib/Drupal/config_test/ConfigTestAccessController.php @@ -2,12 +2,12 @@ /** * @file - * Contains \Drupal\config_test\ConfigTestAccessController. + * Contains \Drupal\config_test\ConfigTestEntityAccessController. */ namespace Drupal\config_test; -use Drupal\Core\Config\Entity\ConfigAccessController; +use Drupal\Core\Config\Entity\ConfigEntityAccessController; use Drupal\Core\Session\AccountInterface; use Drupal\Core\Entity\EntityInterface; use Drupal\Core\Language\Language; @@ -15,7 +15,7 @@ /** * Defines the access controller for the config_test entity type. */ -class ConfigTestAccessController extends ConfigAccessController { +class ConfigTestEntityAccessController extends ConfigEntityAccessController { /** * {@inheritdoc} diff -u b/core/modules/contact/lib/Drupal/contact/CategoryAccessController.php b/core/modules/contact/lib/Drupal/contact/CategoryAccessController.php --- b/core/modules/contact/lib/Drupal/contact/CategoryAccessController.php +++ b/core/modules/contact/lib/Drupal/contact/CategoryAccessController.php @@ -2,12 +2,12 @@ /** * @file - * Contains \Drupal\contact\CategoryAccessController. + * Contains \Drupal\contact\CategoryEntityAccessController. */ namespace Drupal\contact; -use Drupal\Core\Config\Entity\ConfigAccessController; +use Drupal\Core\Config\Entity\ConfigEntityAccessController; use Drupal\Core\Entity\EntityInterface; use Drupal\Core\Session\AccountInterface; @@ -16,7 +16,7 @@ * * @see \Drupal\contact\Entity\Category. */ -class CategoryAccessController extends ConfigAccessController { +class CategoryEntityAccessController extends ConfigEntityAccessController { /** * {@inheritdoc} diff -u b/core/modules/filter/lib/Drupal/filter/FilterFormatAccessController.php b/core/modules/filter/lib/Drupal/filter/FilterFormatAccessController.php --- b/core/modules/filter/lib/Drupal/filter/FilterFormatAccessController.php +++ b/core/modules/filter/lib/Drupal/filter/FilterFormatAccessController.php @@ -2,19 +2,19 @@ /** * @file - * Contains \Drupal\filter\FilterFormatAccessController. + * Contains \Drupal\filter\FilterFormatEntityAccessController. */ namespace Drupal\filter; -use Drupal\Core\Config\Entity\ConfigAccessController; +use Drupal\Core\Config\Entity\ConfigEntityAccessController; use Drupal\Core\Entity\EntityInterface; use Drupal\Core\Session\AccountInterface; /** * Defines the access controller for the filter format entity type. */ -class FilterFormatAccessController extends ConfigAccessController { +class FilterFormatEntityAccessController extends ConfigEntityAccessController { /** * {@inheritdoc} diff -u b/core/modules/language/lib/Drupal/language/LanguageAccessController.php b/core/modules/language/lib/Drupal/language/LanguageAccessController.php --- b/core/modules/language/lib/Drupal/language/LanguageAccessController.php +++ b/core/modules/language/lib/Drupal/language/LanguageAccessController.php @@ -2,17 +2,17 @@ /** * @file - * Contains \Drupal\language\LanguageAccessController. + * Contains \Drupal\language\LanguageEntityAccessController. */ namespace Drupal\language; -use Drupal\Core\Config\Entity\ConfigAccessController; +use Drupal\Core\Config\Entity\ConfigEntityAccessController; use Drupal\Core\Entity\EntityInterface; use Drupal\Core\Language\Language; use Drupal\Core\Session\AccountInterface; -class LanguageAccessController extends ConfigAccessController { +class LanguageEntityAccessController extends ConfigEntityAccessController { /** * {@inheritdoc} diff -u b/core/modules/node/lib/Drupal/node/NodeTypeAccessController.php b/core/modules/node/lib/Drupal/node/NodeTypeAccessController.php --- b/core/modules/node/lib/Drupal/node/NodeTypeAccessController.php +++ b/core/modules/node/lib/Drupal/node/NodeTypeAccessController.php @@ -2,12 +2,12 @@ /** * @file - * Contains \Drupal\taxonomy\NodeTypeAccessController. + * Contains \Drupal\taxonomy\NodeTypeEntityAccessController. */ namespace Drupal\node; -use Drupal\Core\Config\Entity\ConfigAccessController; +use Drupal\Core\Config\Entity\ConfigEntityAccessController; use Drupal\Core\Entity\EntityInterface; use Drupal\Core\Session\AccountInterface; @@ -16,7 +16,7 @@ * * @see \Drupal\node\Entity\NodeType. */ -class NodeTypeAccessController extends ConfigAccessController { +class NodeTypeEntityAccessController extends ConfigEntityAccessController { /** * {@inheritdoc} diff -u b/core/modules/search/lib/Drupal/search/SearchPageAccessController.php b/core/modules/search/lib/Drupal/search/SearchPageAccessController.php --- b/core/modules/search/lib/Drupal/search/SearchPageAccessController.php +++ b/core/modules/search/lib/Drupal/search/SearchPageAccessController.php @@ -2,20 +2,20 @@ /** * @file - * Contains \Drupal\search\SearchPageAccessController. + * Contains \Drupal\search\SearchPageEntityAccessController. */ namespace Drupal\search; use Drupal\Core\Access\AccessibleInterface; -use Drupal\Core\Config\Entity\ConfigAccessController; +use Drupal\Core\Config\Entity\ConfigEntityAccessController; use Drupal\Core\Entity\EntityInterface; use Drupal\Core\Session\AccountInterface; /** * Defines the access controller for the search page entity type. */ -class SearchPageAccessController extends ConfigAccessController { +class SearchPageEntityAccessController extends ConfigEntityAccessController { /** * {@inheritdoc} diff -u b/core/modules/shortcut/lib/Drupal/shortcut/ShortcutSetAccessController.php b/core/modules/shortcut/lib/Drupal/shortcut/ShortcutSetAccessController.php --- b/core/modules/shortcut/lib/Drupal/shortcut/ShortcutSetAccessController.php +++ b/core/modules/shortcut/lib/Drupal/shortcut/ShortcutSetAccessController.php @@ -2,19 +2,19 @@ /** * @file - * Contains \Drupal\shortcut\ShortcutSetAccessController. + * Contains \Drupal\shortcut\ShortcutSetEntityAccessController. */ namespace Drupal\shortcut; -use Drupal\Core\Config\Entity\ConfigAccessController; +use Drupal\Core\Config\Entity\ConfigEntityAccessController; use Drupal\Core\Entity\EntityInterface; use Drupal\Core\Session\AccountInterface; /** * Defines the access controller for the shortcut entity type. */ -class ShortcutSetAccessController extends ConfigAccessController { +class ShortcutSetEntityAccessController extends ConfigEntityAccessController { /** * {@inheritdoc} diff -u b/core/modules/system/lib/Drupal/system/DateFormatAccessController.php b/core/modules/system/lib/Drupal/system/DateFormatAccessController.php --- b/core/modules/system/lib/Drupal/system/DateFormatAccessController.php +++ b/core/modules/system/lib/Drupal/system/DateFormatAccessController.php @@ -2,19 +2,19 @@ /** * @file - * Contains \Drupal\system\DateFormatAccessController. + * Contains \Drupal\system\DateFormatEntityAccessController. */ namespace Drupal\system; -use Drupal\Core\Config\Entity\ConfigAccessController; +use Drupal\Core\Config\Entity\ConfigEntityAccessController; use Drupal\Core\Entity\EntityInterface; use Drupal\Core\Session\AccountInterface; /** * Provides an access controller for date formats. */ -class DateFormatAccessController extends ConfigAccessController { +class DateFormatEntityAccessController extends ConfigEntityAccessController { /** * {@inheritdoc} diff -u b/core/modules/system/lib/Drupal/system/MenuAccessController.php b/core/modules/system/lib/Drupal/system/MenuAccessController.php --- b/core/modules/system/lib/Drupal/system/MenuAccessController.php +++ b/core/modules/system/lib/Drupal/system/MenuAccessController.php @@ -2,19 +2,19 @@ /** * @file - * Contains \Drupal\system\MenuAccessController. + * Contains \Drupal\system\MenuEntityAccessController. */ namespace Drupal\system; -use Drupal\Core\Config\Entity\ConfigAccessController; +use Drupal\Core\Config\Entity\ConfigEntityAccessController; use Drupal\Core\Entity\EntityInterface; use Drupal\Core\Session\AccountInterface; /** * Defines the access controller for the menu entity type. */ -class MenuAccessController extends ConfigAccessController { +class MenuEntityAccessController extends ConfigEntityAccessController { /** * {@inheritdoc} diff -u b/core/modules/user/lib/Drupal/user/RoleAccessController.php b/core/modules/user/lib/Drupal/user/RoleAccessController.php --- b/core/modules/user/lib/Drupal/user/RoleAccessController.php +++ b/core/modules/user/lib/Drupal/user/RoleAccessController.php @@ -2,19 +2,19 @@ /** * @file - * Contains \Drupal\user\RoleAccessController. + * Contains \Drupal\user\RoleEntityAccessController. */ namespace Drupal\user; -use Drupal\Core\Config\Entity\ConfigAccessController; +use Drupal\Core\Config\Entity\ConfigEntityAccessController; use Drupal\Core\Entity\EntityInterface; use Drupal\Core\Session\AccountInterface; /** * Defines the access controller for the user_role entity type. */ -class RoleAccessController extends ConfigAccessController { +class RoleEntityAccessController extends ConfigEntityAccessController { /** * {@inheritdoc} diff -u b/core/modules/views/lib/Drupal/views/ViewAccessController.php b/core/modules/views/lib/Drupal/views/ViewAccessController.php --- b/core/modules/views/lib/Drupal/views/ViewAccessController.php +++ b/core/modules/views/lib/Drupal/views/ViewAccessController.php @@ -2,12 +2,12 @@ /** * @file - * Contains \Drupal\views\ViewAccessController. + * Contains \Drupal\views\ViewEntityAccessController. */ namespace Drupal\views; -use Drupal\Core\Config\Entity\ConfigAccessController; +use Drupal\Core\Config\Entity\ConfigEntityAccessController; use Drupal\Core\Entity\EntityInterface; use Drupal\Core\Language\Language; use Drupal\Core\Session\AccountInterface; @@ -15,7 +15,7 @@ /** * Defines the access controller for the view entity type. */ -class ViewAccessController extends ConfigAccessController { +class ViewEntityAccessController extends ConfigEntityAccessController { /** * {@inheritdoc} only in patch2: unchanged: --- /dev/null +++ b/core/lib/Drupal/Core/Config/Entity/ConfigEntityAccessController.php @@ -0,0 +1,38 @@ +entityType->hasKey('status')) { + $is_enabled = $entity->status(); + $can_be_toggled = $operation == 'disable' ? $is_enabled : !$is_enabled; + return $can_be_toggled && $this->access($entity, 'update', $langcode, $account); + } + else { + return FALSE; + } + } + return parent::checkAccess($entity, $operation, $langcode, $account); + } + +} only in patch2: unchanged: --- a/core/modules/block/block.api.php +++ b/core/modules/block/block.api.php @@ -86,7 +86,7 @@ function hook_block_view_BASE_BLOCK_ID_alter(array &$build, \Drupal\block\BlockP * @return bool|null * FALSE denies access. TRUE allows access unless another module returns * FALSE. If all modules return NULL, then default access rules from - * \Drupal\block\BlockAccessController::checkAccess() are used. + * \Drupal\block\BlockEntityAccessController::checkAccess() are used. * * @see \Drupal\Core\Entity\EntityAccessController::access() * @see \Drupal\block\BlockAccessController::checkAccess() only in patch2: unchanged: --- a/core/modules/block/lib/Drupal/block/Entity/Block.php +++ b/core/modules/block/lib/Drupal/block/Entity/Block.php @@ -19,7 +19,7 @@ * id = "block", * label = @Translation("Block"), * controllers = { - * "access" = "Drupal\block\BlockAccessController", + * "access" = "Drupal\block\BlockEntityAccessController", * "view_builder" = "Drupal\block\BlockViewBuilder", * "list" = "Drupal\block\BlockListController", * "form" = { only in patch2: unchanged: --- a/core/modules/config/tests/config_test/lib/Drupal/config_test/Entity/ConfigTest.php +++ b/core/modules/config/tests/config_test/lib/Drupal/config_test/Entity/ConfigTest.php @@ -23,7 +23,7 @@ * "default" = "Drupal\config_test\ConfigTestFormController", * "delete" = "Drupal\config_test\Form\ConfigTestDeleteForm" * }, - * "access" = "Drupal\config_test\ConfigTestAccessController" + * "access" = "Drupal\config_test\ConfigTestEntityAccessController" * }, * config_prefix = "config_test.dynamic", * entity_keys = { only in patch2: unchanged: --- a/core/modules/contact/lib/Drupal/contact/Entity/Category.php +++ b/core/modules/contact/lib/Drupal/contact/Entity/Category.php @@ -18,7 +18,7 @@ * id = "contact_category", * label = @Translation("Contact category"), * controllers = { - * "access" = "Drupal\contact\CategoryAccessController", + * "access" = "Drupal\contact\CategoryEntityAccessController", * "list" = "Drupal\contact\CategoryListController", * "form" = { * "add" = "Drupal\contact\CategoryFormController", only in patch2: unchanged: --- a/core/modules/filter/lib/Drupal/filter/Entity/FilterFormat.php +++ b/core/modules/filter/lib/Drupal/filter/Entity/FilterFormat.php @@ -27,7 +27,7 @@ * "disable" = "Drupal\filter\Form\FilterDisableForm" * }, * "list" = "Drupal\filter\FilterFormatListController", - * "access" = "Drupal\filter\FilterFormatAccessController", + * "access" = "Drupal\filter\FilterFormatEntityAccessController", * }, * config_prefix = "filter.format", * admin_permission = "administer filters", only in patch2: unchanged: --- a/core/modules/language/language.module +++ b/core/modules/language/language.module @@ -117,7 +117,7 @@ function language_menu_link_defaults() { /** * Editing or deleting locked languages should not be possible. * - * @deprecated Use \Drupal\language\LanguageAccessController instead. + * @deprecated Use \Drupal\language\LanguageEntityAccessController instead. */ function language_access_language_edit_or_delete($language) { return !$language->locked && \Drupal::currentUser()->hasPermission('administer languages'); only in patch2: unchanged: --- a/core/modules/language/lib/Drupal/language/Entity/Language.php +++ b/core/modules/language/lib/Drupal/language/Entity/Language.php @@ -20,7 +20,7 @@ * label = @Translation("Language"), * controllers = { * "list" = "Drupal\language\LanguageListController", - * "access" = "Drupal\language\LanguageAccessController", + * "access" = "Drupal\language\LanguageEntityAccessController", * "form" = { * "add" = "Drupal\language\Form\LanguageAddForm", * "edit" = "Drupal\language\Form\LanguageEditForm", only in patch2: unchanged: --- a/core/modules/node/lib/Drupal/node/Entity/NodeType.php +++ b/core/modules/node/lib/Drupal/node/Entity/NodeType.php @@ -20,7 +20,7 @@ * id = "node_type", * label = @Translation("Content type"), * controllers = { - * "access" = "Drupal\node\NodeTypeAccessController", + * "access" = "Drupal\node\NodeTypeEntityAccessController", * "form" = { * "add" = "Drupal\node\NodeTypeFormController", * "edit" = "Drupal\node\NodeTypeFormController", only in patch2: unchanged: --- a/core/modules/search/lib/Drupal/search/Entity/SearchPage.php +++ b/core/modules/search/lib/Drupal/search/Entity/SearchPage.php @@ -21,7 +21,7 @@ * id = "search_page", * label = @Translation("Search page"), * controllers = { - * "access" = "Drupal\search\SearchPageAccessController", + * "access" = "Drupal\search\SearchPageEntityAccessController", * "storage" = "Drupal\Core\Config\Entity\ConfigStorageController", * "list" = "Drupal\search\SearchPageListController", * "form" = { only in patch2: unchanged: --- a/core/modules/shortcut/lib/Drupal/shortcut/Entity/ShortcutSet.php +++ b/core/modules/shortcut/lib/Drupal/shortcut/Entity/ShortcutSet.php @@ -20,7 +20,7 @@ * label = @Translation("Shortcut set"), * controllers = { * "storage" = "Drupal\shortcut\ShortcutSetStorageController", - * "access" = "Drupal\shortcut\ShortcutSetAccessController", + * "access" = "Drupal\shortcut\ShortcutSetEntityAccessController", * "list" = "Drupal\shortcut\ShortcutSetListController", * "form" = { * "default" = "Drupal\shortcut\ShortcutSetFormController", only in patch2: unchanged: --- a/core/modules/system/lib/Drupal/system/Entity/DateFormat.php +++ b/core/modules/system/lib/Drupal/system/Entity/DateFormat.php @@ -19,7 +19,7 @@ * id = "date_format", * label = @Translation("Date format"), * controllers = { - * "access" = "Drupal\system\DateFormatAccessController", + * "access" = "Drupal\system\DateFormatEntityAccessController", * "list" = "Drupal\system\DateFormatListController", * "form" = { * "add" = "Drupal\system\Form\DateFormatAddForm", only in patch2: unchanged: --- a/core/modules/system/lib/Drupal/system/Entity/Menu.php +++ b/core/modules/system/lib/Drupal/system/Entity/Menu.php @@ -19,7 +19,7 @@ * id = "menu", * label = @Translation("Menu"), * controllers = { - * "access" = "Drupal\system\MenuAccessController" + * "access" = "Drupal\system\MenuEntityAccessController" * }, * config_prefix = "system.menu", * admin_permission = "administer menu", only in patch2: unchanged: --- a/core/modules/user/lib/Drupal/user/Entity/Role.php +++ b/core/modules/user/lib/Drupal/user/Entity/Role.php @@ -20,7 +20,7 @@ * label = @Translation("Role"), * controllers = { * "storage" = "Drupal\user\RoleStorageController", - * "access" = "Drupal\user\RoleAccessController", + * "access" = "Drupal\user\RoleEntityAccessController", * "list" = "Drupal\user\RoleListController", * "form" = { * "default" = "Drupal\user\RoleFormController", only in patch2: unchanged: --- a/core/modules/views/lib/Drupal/views/Entity/View.php +++ b/core/modules/views/lib/Drupal/views/Entity/View.php @@ -23,7 +23,7 @@ * label = @Translation("View"), * controllers = { * "storage" = "Drupal\views\ViewStorageController", - * "access" = "Drupal\views\ViewAccessController" + * "access" = "Drupal\views\ViewEntityAccessController" * }, * admin_permission = "administer views", * config_prefix = "views.view",