Issue #3069028 by alexpott: Properly Deprecate Drupal\Core\Access\AccessResult::cacheUntilConfigurationChanges
parent
ae248f2e43
commit
6c183523d0
|
@ -301,10 +301,11 @@ abstract class AccessResult implements AccessResultInterface, RefinableCacheable
|
|||
*
|
||||
* @return $this
|
||||
*
|
||||
* @deprecated in Drupal 8.0.x-dev, will be removed before Drupal 9.0.0. Use
|
||||
* ::addCacheableDependency() instead.
|
||||
* @deprecated in drupal:8.0.0 and is removed in drupal:9.0.0. Use
|
||||
* \Drupal\Core\Access\AccessResult::addCacheableDependency() instead.
|
||||
*/
|
||||
public function cacheUntilConfigurationChanges(ConfigBase $configuration) {
|
||||
@trigger_error(__METHOD__ . ' is deprecated in drupal:8.0.0 and is removed in drupal:9.0.0. Use \Drupal\Core\Access\AccessResult::addCacheableDependency() instead.', E_USER_DEPRECATED);
|
||||
return $this->addCacheableDependency($configuration);
|
||||
}
|
||||
|
||||
|
|
|
@ -88,7 +88,7 @@ class ContactPageAccess implements AccessInterface {
|
|||
// If the requested user did not save a preference yet, deny access if the
|
||||
// configured default is disabled.
|
||||
$contact_settings = $this->configFactory->get('contact.settings');
|
||||
$access->cacheUntilConfigurationChanges($contact_settings);
|
||||
$access->addCacheableDependency($contact_settings);
|
||||
if (!isset($account_data) && !$contact_settings->get('user_default_enabled')) {
|
||||
return $access;
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ class RegisterAccessCheck implements AccessInterface {
|
|||
*/
|
||||
public function access(AccountInterface $account) {
|
||||
$user_settings = \Drupal::config('user.settings');
|
||||
return AccessResult::allowedIf($account->isAnonymous() && $user_settings->get('register') != UserInterface::REGISTER_ADMINISTRATORS_ONLY)->cacheUntilConfigurationChanges($user_settings);
|
||||
return AccessResult::allowedIf($account->isAnonymous() && $user_settings->get('register') != UserInterface::REGISTER_ADMINISTRATORS_ONLY)->addCacheableDependency($user_settings);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@ use Drupal\Core\Access\AccessResultNeutral;
|
|||
use Drupal\Core\Access\AccessResultReasonInterface;
|
||||
use Drupal\Core\Cache\Cache;
|
||||
use Drupal\Core\Cache\CacheableDependencyInterface;
|
||||
use Drupal\Core\Config\Config;
|
||||
use Drupal\Core\DependencyInjection\ContainerBuilder;
|
||||
use Drupal\Tests\UnitTestCase;
|
||||
|
||||
|
@ -968,6 +969,21 @@ class AccessResultTest extends UnitTestCase {
|
|||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedDeprecation Drupal\Core\Access\AccessResult::cacheUntilConfigurationChanges is deprecated in drupal:8.0.0 and is removed in drupal:9.0.0. Use \Drupal\Core\Access\AccessResult::addCacheableDependency() instead.
|
||||
* @group legacy
|
||||
*/
|
||||
public function testCacheUntilConfigurationChanges() {
|
||||
$config = $this->prophesize(Config::class);
|
||||
$config->getCacheContexts()->willReturn(['context']);
|
||||
$config->getCacheTags()->willReturn(['tag']);
|
||||
$config->getCacheMaxAge()->willReturn(10);
|
||||
$access_result = AccessResult::neutral()->cacheUntilConfigurationChanges($config->reveal());
|
||||
$this->assertSame(['context'], $access_result->getCacheContexts());
|
||||
$this->assertSame(['tag'], $access_result->getCacheTags());
|
||||
$this->assertSame(10, $access_result->getCacheMaxAge());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class UncacheableTestAccessResult implements AccessResultInterface {
|
||||
|
|
Loading…
Reference in New Issue