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'); | |
| } | |
| } |