Skip to content

Commit 51fee17

Browse files
author
Christoph Lehmann
committed
Task: Add backend user resolver
1 parent 91d49eb commit 51fee17

7 files changed

Lines changed: 97 additions & 4 deletions

File tree

Classes/Domain/Model/Dto/ResolverData.php

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
* LICENSE.txt file that was distributed with this source code.
99
*/
1010

11+
use T3Monitor\T3monitoring\Domain\Model\Rule;
12+
1113
class ResolverData
1214
{
1315
/**
@@ -25,6 +27,11 @@ class ResolverData
2527
*/
2628
protected $responseHeaders;
2729

30+
/**
31+
* @var Rule
32+
*/
33+
protected $rule;
34+
2835
public function __construct(array $client, array $response, array $responseHeaders)
2936
{
3037
$this->client = $client;
@@ -79,4 +86,21 @@ public function setResponseHeaders(array $responseHeaders)
7986
{
8087
$this->responseHeaders = $responseHeaders;
8188
}
89+
90+
/**
91+
* @return Rule
92+
*/
93+
public function getRule()
94+
{
95+
return $this->rule;
96+
}
97+
98+
/**
99+
* @param Rule $rule
100+
*/
101+
public function setRule(Rule $rule)
102+
{
103+
$this->rule = $rule;
104+
}
105+
82106
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<?php
2+
namespace T3Monitor\T3monitoring\Resolver;
3+
4+
use TYPO3\CMS\Core\Utility\GeneralUtility;
5+
6+
class BackendUserResolver extends BaseResolver
7+
{
8+
const TITLE = 'Backend user';
9+
10+
public function setValueForComparison()
11+
{
12+
$this->valueForComparison = $this->resolverData->getResponse()['backendUser'];
13+
}
14+
15+
public function getProviderArguments()
16+
{
17+
return GeneralUtility::trimExplode(PHP_EOL, $this->argument, true);
18+
}
19+
20+
protected function isActiveOperator()
21+
{
22+
if (!isset($this->resolverData->getResponse()['backendUser'])) {
23+
return;
24+
}
25+
26+
$unwantedActiveUsers = array_intersect($this->getProviderArguments(),
27+
$this->resolverData->getResponse()['backendUser']);
28+
29+
if (count($unwantedActiveUsers) > 0) {
30+
$this->addRuleData($unwantedActiveUsers);
31+
}
32+
return $unwantedActiveUsers !== 0;
33+
}
34+
35+
protected function addRuleData($backendUsers)
36+
{
37+
$update = $this->resolverData->getResponse();
38+
$messageCategory = $this->resolverData->getRule()->getMessageCategory();
39+
$update['extra'][$messageCategory][$this->resolverData->getRule()->getTitle()] = implode(',',
40+
$backendUsers);
41+
$this->resolverData->setResponse($update);
42+
}
43+
}

Classes/Service/CheckResultService.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,11 @@ public function getProviderArguments()
6262
foreach ($checks as $check) {
6363
$providerArguments = $this->getResolver($check)->getProviderArguments();
6464
if ($providerArguments) {
65-
$allProviderArguments[$check->getType()][] = $providerArguments;
65+
if (is_array($providerArguments)) {
66+
$allProviderArguments[$check->getType()] = $providerArguments;
67+
} else {
68+
$allProviderArguments[$check->getType()][] = $providerArguments;
69+
}
6670
}
6771
}
6872

@@ -82,6 +86,7 @@ public function createCheckResult(ResolverData $resolverData)
8286
$checkResult->setClient($resolverData->getClient()['uid']);
8387

8488
foreach ($this->rules as $rule) {
89+
$this->resolverData->setRule($rule);
8590
$checkFailureCriterias = true;
8691
foreach ($rule->getExecutionCriteria() as $executionCriteria) {
8792
$checkFailureCriterias = $this->runCheck($executionCriteria);

Classes/Service/Import/ClientImport.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,8 +133,10 @@ protected function importSingleClient(array $row)
133133
'extensions' => $this->handleExtensionRelations($row['uid'], (array)$json['extensions']),
134134
];
135135

136-
$checkResultCreationDemand = new ResolverData($row, $json, $responseHeaders);
137-
$checkResult = $this->checkResultService->createCheckResult($checkResultCreationDemand);
136+
$resolverData = new ResolverData($row, $json, $responseHeaders);
137+
$checkResult = $this->checkResultService->createCheckResult($resolverData);
138+
$json = $resolverData->getResponse();
139+
138140
$update['earlier_check_result'] = $row['check_result'];
139141
$update['check_result'] = $checkResult->getUid();
140142

Configuration/TCA/tx_t3monitoring_domain_model_check.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,24 @@
100100
]
101101
]
102102
],
103+
'backendUser' => [
104+
'showitem' => 'hidden, title, type, argument, operator',
105+
'columnsOverrides' => [
106+
'argument' => [
107+
'label' => 'List of backend users separated by newline',
108+
'config' => [
109+
'type' => 'text'
110+
]
111+
],
112+
'operator' => [
113+
'config' => [
114+
'items' => [
115+
['is active', 'isActive'],
116+
]
117+
]
118+
],
119+
]
120+
],
103121
],
104122
'columns' => [
105123
'hidden' => [

ext_localconf.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ function ($extKey) {
1717
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass'][$extKey]
1818
= \T3Monitor\T3monitoring\Hooks\DataHandlerHook::class;
1919

20+
$GLOBALS['TYPO3_CONF_VARS']['EXT'][$extKey]['resolver']['backendUser'] = \T3Monitor\T3monitoring\Resolver\BackendUserResolver::class;
2021
$GLOBALS['TYPO3_CONF_VARS']['EXT'][$extKey]['resolver']['configurationValue'] = \T3Monitor\T3monitoring\Resolver\ConfigurationResolver::class;
2122
$GLOBALS['TYPO3_CONF_VARS']['EXT'][$extKey]['resolver']['header'] = \T3Monitor\T3monitoring\Resolver\HeaderResolver::class;
2223
$GLOBALS['TYPO3_CONF_VARS']['EXT'][$extKey]['resolver']['extensionState'] = \T3Monitor\T3monitoring\Resolver\ExtensionStateResolver::class;

ext_tables.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ CREATE TABLE tx_t3monitoring_domain_model_check (
205205

206206
title varchar(255) DEFAULT '' NOT NULL,
207207
type varchar(255) DEFAULT '' NOT NULL,
208-
argument varchar(255) DEFAULT '' NOT NULL,
208+
argument text DEFAULT '' NOT NULL,
209209
operator varchar(255) DEFAULT '' NOT NULL,
210210
value varchar(255) DEFAULT '' NOT NULL,
211211

0 commit comments

Comments
 (0)