Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 3 |
CRAP | |
0.00% |
0 / 9 |
AdminNegotiator | |
0.00% |
0 / 1 |
|
0.00% |
0 / 3 |
30 | |
0.00% |
0 / 9 |
__construct | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 5 |
|||
applies | |
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 2 |
|||
determineActiveTheme | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
<?php | |
/** | |
* @file | |
* Contains \Drupal\user\Theme\AdminNegotiator. | |
*/ | |
namespace Drupal\user\Theme; | |
use Drupal\Core\Config\ConfigFactoryInterface; | |
use Drupal\Core\Entity\EntityManagerInterface; | |
use Drupal\Core\Routing\AdminContext; | |
use Drupal\Core\Routing\RouteMatchInterface; | |
use Drupal\Core\Session\AccountInterface; | |
use Drupal\Core\Theme\ThemeNegotiatorInterface; | |
/** | |
* Sets the active theme on admin pages. | |
*/ | |
class AdminNegotiator implements ThemeNegotiatorInterface { | |
/** | |
* The current user. | |
* | |
* @var \Drupal\Core\Session\AccountInterface | |
*/ | |
protected $user; | |
/** | |
* The config factory. | |
* | |
* @var \Drupal\Core\Config\ConfigFactoryInterface | |
*/ | |
protected $configFactory; | |
/** | |
* The entity manager. | |
* | |
* @var \Drupal\Core\Entity\EntityManagerInterface | |
*/ | |
protected $entityManager; | |
/** | |
* The route admin context to determine whether a route is an admin one. | |
* | |
* @var \Drupal\Core\Routing\AdminContext | |
*/ | |
protected $adminContext; | |
/** | |
* Creates a new AdminNegotiator instance. | |
* | |
* @param \Drupal\Core\Session\AccountInterface $user | |
* The current user. | |
* @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory | |
* The config factory. | |
* @param \Drupal\Core\Entity\EntityManagerInterface $entity_manager | |
* The entity manager. | |
* @param \Drupal\Core\Routing\AdminContext $admin_context | |
* The route admin context to determine whether the route is an admin one. | |
*/ | |
public function __construct(AccountInterface $user, ConfigFactoryInterface $config_factory, EntityManagerInterface $entity_manager, AdminContext $admin_context) { | |
$this->user = $user; | |
$this->configFactory = $config_factory; | |
$this->entityManager = $entity_manager; | |
$this->adminContext = $admin_context; | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function applies(RouteMatchInterface $route_match) { | |
return ($this->entityManager->hasHandler('user_role', 'storage') && $this->user->hasPermission('view the administration theme') && $this->adminContext->isAdminRoute($route_match->getRouteObject())); | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function determineActiveTheme(RouteMatchInterface $route_match) { | |
return $this->configFactory->get('system.theme')->get('admin'); | |
} | |
} |