Deprecation: #108568 - BackendUserAuthentication::recordEditAccessInternals() and $errorMsg
See forge#108568
Description
The method
Backend
and the property
Backend of class
\TYPO3\
have been deprecated.
They represented an anti-pattern in which the method returned a boolean value but communicated error details through a class property, making the API difficult to use and test.
A new method
check has been introduced. It returns
an
\TYPO3\ value object
containing both the access decision and any error messages.
Impact
Calling the deprecated method
record or accessing
the deprecated property
$error will trigger a deprecation-level log
entry and will stop working in TYPO3 v15.0.
The extension scanner reports usages as a strong match.
Affected installations
Instances or extensions that directly call
record or access the
$error property.
Migration
Replace calls to
record with
check. The new method returns a
\TYPO3\ object with two public
properties:
is- Boolean indicating whether access is grantedAllowed error- String containing the error message. It is empty if access is grantedMessage
Before
use TYPO3\CMS\Core\Authentication\BackendUserAuthentication;
$backendUser = $this->getBackendUser();
if ($backendUser->recordEditAccessInternals($table, $record)) {
// Access granted
} else {
// Access denied, error message is in $backendUser->errorMsg
$errorMessage = $backendUser->errorMsg;
}
After
use TYPO3\CMS\Core\Authentication\BackendUserAuthentication;
$backendUser = $this->getBackendUser();
$accessResult = $backendUser->checkRecordEditAccess($table, $record);
if ($accessResult->isAllowed) {
// Access granted
} else {
// Access denied
$errorMessage = $accessResult->errorMessage;
}