class SystemStatusController in System Status 8.2
Same name and namespace in other branches
- 8 src/Controller/SystemStatusController.php \Drupal\system_status\Controller\SystemStatusController
Returns responses for Sensei's Pants routes.
Hierarchy
- class \Drupal\Core\Controller\ControllerBase implements ContainerInjectionInterface uses LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\system_status\Controller\SystemStatusController
Expanded class hierarchy of SystemStatusController
File
- src/
Controller/ SystemStatusController.php, line 17
Namespace
Drupal\system_status\ControllerView source
class SystemStatusController extends ControllerBase {
/**
* The module handler.
*
* @var \Drupal\Core\Extension\ModuleHandlerInterface
*/
protected $moduleHandler;
/**
* The theme handler.
*
* @var \Drupal\Core\Extension\ThemeHandlerInterface
*/
protected $themeHandler;
/**
* The system status encrypt service.
*
* @var \Drupal\system_status\Services\SystemStatusEncryption
*/
protected $encrypt;
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static($container
->get('module_handler'), $container
->get('theme_handler'), $container
->get('system_status.encrypt'));
}
/**
* SystemStatusController constructor.
*
* @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
* The module handler to invoke the alter hook with.
* @param \Drupal\Core\Extension\ThemeHandlerInterface $theme_handler
* The theme handler.
* @param \Drupal\system_status\Services\SystemStatusEncryption $encrypt
* The System Status encrypt.
*/
public function __construct(ModuleHandlerInterface $module_handler, ThemeHandlerInterface $theme_handler, SystemStatusEncryption $encrypt) {
$this->moduleHandler = $module_handler;
$this->themeHandler = $theme_handler;
$this->encrypt = $encrypt;
}
/**
* Changes Sensei's pants and returns the display of the new status.
*/
public function load($system_status_token) {
// Needless initialisation, but hey.
$res = [
"core" => [],
"contrib" => [],
"theme" => [],
];
$drupal_modules = $this->moduleHandler
->getModuleList();
$drupal_themes = $this->themeHandler
->listInfo();
foreach ($drupal_modules as $name => $module) {
$filename = $module
->getPath() . '/' . $module
->getFilename();
$module_info = Yaml::decode(file_get_contents($filename));
// This can happen when you install using composer.
if (isset($module_info['version']) && $module_info['version'] == "VERSION") {
$module_info['version'] = \Drupal::VERSION;
}
if (!isset($module_info['version'])) {
$module_info['version'] = NULL;
}
// Do our best to guess the correct drupal version.
if ($name == "system" && $module_info['package'] == "Core") {
$res['core']['drupal'] = [
"version" => $module_info['version'],
];
}
// Skip Core and Field types.
if (isset($module_info['package']) && $module_info['package'] == "Core" || isset($module_info['package']) && $module_info['package'] == "Field types" || isset($module_info['project']) && $module_info['project'] == 'drupal') {
continue;
}
// TODO:
// if(!isset($module['version']))
// we can be 90% sure it's not contrib, so we can put it in custom
// hard to test as system_status is not released yet so no version
// let's put all the rest in 'contrib' for now.
if (isset($module_info['project'])) {
$res['contrib'][$module_info['project']] = [
"version" => $module_info['version'],
];
}
else {
$res['contrib'][$name] = [
"version" => $module_info['version'],
];
}
}
foreach ($drupal_themes as $name => $theme) {
$filename = $theme
->getPath() . '/' . $theme
->getFilename();
$theme_info = Yaml::decode(file_get_contents($filename));
if (!isset($theme_info['version'])) {
$theme_info['version'] = NULL;
}
// This can happen when you install using composer.
if ($theme_info['version'] == "VERSION") {
$theme_info['version'] = \Drupal::VERSION;
}
if (isset($theme_info['project']) && $theme_info['project'] == 'drupal') {
continue;
}
if (isset($theme_info['project'])) {
$res['theme'][$theme_info['project']] = [
"version" => $theme_info['version'],
];
}
else {
$res['theme'][$name] = [
"version" => $theme_info['version'],
];
}
}
$config = $this
->config('system_status.settings');
if (function_exists('openssl_random_pseudo_bytes')) {
$res = SystemStatusEncryption::encryptOpenssl(json_encode([
"system_status" => $res,
]));
return new JsonResponse([
"system_status" => "encrypted_openssl",
"data" => $res,
"drupal_version" => "8",
"engine_version" => "DRUPAL8",
"php_version" => phpversion(),
]);
}
elseif (extension_loaded('mcrypt')) {
$res = SystemStatusEncryption::encryptMcrypt(json_encode([
"system_status" => $res,
]));
return new JsonResponse([
"system_status" => "encrypted",
"data" => $res,
"drupal_version" => "8",
"engine_version" => "DRUPAL8",
"php_version" => phpversion(),
]);
}
else {
return new JsonResponse([
"system_status" => $res,
"drupal_version" => "8",
"engine_version" => "DRUPAL8",
"php_version" => phpversion(),
]);
}
}
/**
* {@inheritdoc}
*/
public function access($system_status_token) {
$token = $this
->config('system_status.settings')
->get('system_status_token');
if ($token == $system_status_token) {
return AccessResult::allowed();
}
else {
return AccessResult::forbidden();
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ControllerBase:: |
protected | property | The configuration factory. | |
ControllerBase:: |
protected | property | The current user service. | 1 |
ControllerBase:: |
protected | property | The entity form builder. | |
ControllerBase:: |
protected | property | The entity manager. | |
ControllerBase:: |
protected | property | The entity type manager. | |
ControllerBase:: |
protected | property | The form builder. | 2 |
ControllerBase:: |
protected | property | The key-value storage. | 1 |
ControllerBase:: |
protected | property | The language manager. | 1 |
ControllerBase:: |
protected | property | The state service. | |
ControllerBase:: |
protected | function | Returns the requested cache bin. | |
ControllerBase:: |
protected | function | Retrieves a configuration object. | |
ControllerBase:: |
private | function | Returns the service container. | |
ControllerBase:: |
protected | function | Returns the current user. | 1 |
ControllerBase:: |
protected | function | Retrieves the entity form builder. | |
ControllerBase:: |
protected | function | Retrieves the entity manager service. | |
ControllerBase:: |
protected | function | Retrieves the entity type manager. | |
ControllerBase:: |
protected | function | Returns the form builder service. | 2 |
ControllerBase:: |
protected | function | Returns a key/value storage collection. | 1 |
ControllerBase:: |
protected | function | Returns the language manager service. | 1 |
ControllerBase:: |
protected | function | Returns the module handler. | 2 |
ControllerBase:: |
protected | function |
Returns a redirect response object for the specified route. Overrides UrlGeneratorTrait:: |
|
ControllerBase:: |
protected | function | Returns the state storage service. | |
LinkGeneratorTrait:: |
protected | property | The link generator. | 1 |
LinkGeneratorTrait:: |
protected | function | Returns the link generator. | |
LinkGeneratorTrait:: |
protected | function | Renders a link to a route given a route name and its parameters. | |
LinkGeneratorTrait:: |
public | function | Sets the link generator service. | |
LoggerChannelTrait:: |
protected | property | The logger channel factory service. | |
LoggerChannelTrait:: |
protected | function | Gets the logger for a specific channel. | |
LoggerChannelTrait:: |
public | function | Injects the logger channel factory. | |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
RedirectDestinationTrait:: |
protected | property | The redirect destination service. | 1 |
RedirectDestinationTrait:: |
protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |
RedirectDestinationTrait:: |
protected | function | Returns the redirect destination service. | |
RedirectDestinationTrait:: |
public | function | Sets the redirect destination service. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
SystemStatusController:: |
protected | property | The system status encrypt service. | |
SystemStatusController:: |
protected | property |
The module handler. Overrides ControllerBase:: |
|
SystemStatusController:: |
protected | property | The theme handler. | |
SystemStatusController:: |
public | function | ||
SystemStatusController:: |
public static | function |
Instantiates a new instance of this class. Overrides ControllerBase:: |
|
SystemStatusController:: |
public | function | Changes Sensei's pants and returns the display of the new status. | |
SystemStatusController:: |
public | function | SystemStatusController constructor. | |
UrlGeneratorTrait:: |
protected | property | The url generator. | |
UrlGeneratorTrait:: |
protected | function | Returns the URL generator service. | |
UrlGeneratorTrait:: |
public | function | Sets the URL generator service. | |
UrlGeneratorTrait:: |
protected | function | Generates a URL or path for a specific route based on the given parameters. |