TYPO3CMS
9.5
Main Page
Related Pages
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
$
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Variables
$
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
Files
File List
File Members
All
$
d
e
r
u
Functions
Variables
$
e
r
Examples
•
All
Classes
Namespaces
Files
Functions
Variables
Pages
ElementBasedValidator.php
Go to the documentation of this file.
1
<?php
2
declare(strict_types = 1);
3
namespace
TYPO3\CMS\Form\Domain\Configuration\FormDefinition\Validators
;
4
5
/*
6
* This file is part of the TYPO3 CMS project.
7
*
8
* It is free software; you can redistribute it and/or modify it under
9
* the terms of the GNU General Public License, either version 2
10
* of the License, or any later version.
11
*
12
* For the full copyright and license information, please read the
13
* LICENSE.txt file that was distributed with this source code.
14
*
15
* The TYPO3 project - inspiring people to share!
16
*/
17
18
use
TYPO3\CMS\Core\Utility\ArrayUtility
;
19
use
TYPO3\CMS\Form\Domain\Configuration\Exception\PropertyException
;
20
24
abstract
class
ElementBasedValidator
extends
AbstractValidator
25
{
26
38
public
function
validateFormElementPropertyValueByHmacData
(
39
array
$currentElement
,
40
$value,
41
string
$sessionToken
,
42
ValidationDto
$dto
43
): void {
44
$hmacDataPath = $this->
buildHmacDataPath
($dto->
getPropertyPath
());
45
if
(
ArrayUtility::isValidPath
(
$currentElement
, $hmacDataPath,
'.'
)) {
46
$hmacData =
ArrayUtility::getValueByPath
(
$currentElement
, $hmacDataPath,
'.'
);
47
48
$hmacContent = [$dto->
getFormElementIdentifier
(), $dto->
getPropertyPath
()];
49
if
(!$this->
getFormDefinitionValidationService
()->isPropertyValueEqualToHistoricalValue($hmacContent, $value, $hmacData,
$sessionToken
)) {
50
$message =
'The value "%s" of property "%s" (form element "%s") is not equal to the historical value "%s" #1528588036'
;
51
throw
new
PropertyException
(
52
sprintf(
53
$message,
54
$value,
55
$dto->
getPropertyPath
(),
56
$dto->
getFormElementIdentifier
(),
57
$hmacData[
'value'
] ??
''
58
),
59
1528588036
60
);
61
}
62
}
else
{
63
$message =
'No hmac found for property "%s" (form element "%s") #1528588037'
;
64
throw
new
PropertyException
(
65
sprintf($message, $dto->
getPropertyPath
(), $dto->
getFormElementIdentifier
()),
66
1528588037
67
);
68
}
69
}
70
}
TYPO3\CMS\Extbase\Property\Exception
Definition:
DuplicateObjectException.php:2
TYPO3\CMS\Form\Domain\Configuration\FormDefinition\Validators\AbstractValidator\$sessionToken
string $sessionToken
Definition:
AbstractValidator.php:39
TYPO3\CMS\Form\Domain\Configuration\FormDefinition\Validators\AbstractValidator\$currentElement
array $currentElement
Definition:
AbstractValidator.php:35
TYPO3\CMS\Form\Domain\Configuration\FormDefinition\Validators\ValidationDto
Definition:
ValidationDto.php:23
TYPO3\CMS\Core\Utility\ArrayUtility\isValidPath
static bool isValidPath(array $array, $path, $delimiter='/')
Definition:
ArrayUtility.php:143
TYPO3\CMS\Form\Domain\Configuration\FormDefinition\Validators\AbstractValidator\buildHmacDataPath
string buildHmacDataPath(string $propertyPath)
Definition:
AbstractValidator.php:63
TYPO3\CMS\Form\Domain\Configuration\FormDefinition\Validators\ValidationDto\getPropertyPath
string getPropertyPath()
Definition:
ValidationDto.php:100
TYPO3\CMS\Form\Domain\Configuration\FormDefinition\Validators\ElementBasedValidator
Definition:
ElementBasedValidator.php:25
TYPO3\CMS\Form\Domain\Configuration\FormDefinition\Validators\ValidationDto\getFormElementIdentifier
string getFormElementIdentifier()
Definition:
ValidationDto.php:92
TYPO3\CMS\Core\Utility\ArrayUtility\getValueByPath
static mixed getValueByPath(array $array, $path, $delimiter='/')
Definition:
ArrayUtility.php:179
TYPO3\CMS\Form\Domain\Configuration\FormDefinition\Validators\AbstractValidator\getFormDefinitionValidationService
FormDefinitionValidationService getFormDefinitionValidationService()
Definition:
AbstractValidator.php:75
TYPO3\CMS\Form\Domain\Configuration\FormDefinition\Validators
Definition:
AbstractValidator.php:3
TYPO3\CMS\Core\Utility\ArrayUtility
Definition:
ArrayUtility.php:23
TYPO3\CMS\Form\Domain\Configuration\FormDefinition\Validators\ElementBasedValidator\validateFormElementPropertyValueByHmacData
validateFormElementPropertyValueByHmacData(array $currentElement, $value, string $sessionToken, ValidationDto $dto)
Definition:
ElementBasedValidator.php:38
TYPO3\CMS\Form\Domain\Configuration\FormDefinition\Validators\AbstractValidator
Definition:
AbstractValidator.php:27
TYPO3\CMS\Form\Domain\Configuration\Exception\PropertyException
Definition:
PropertyException.php:24
doxygen
typo3
sysext
form
Classes
Domain
Configuration
FormDefinition
Validators
ElementBasedValidator.php
Generated on Tue Oct 5 2021 01:57:39 for TYPO3CMS by
1.8.18