2 declare(strict_types = 1);
33 return 'backendUsersConfiguration';
41 return 'Update backend user configuration array';
49 return 'The backend user "uc" array, which is persisted in the db, now only allows for'
50 .
' arrays inside its structure instead of stdClass objects.'
51 .
' Update the uc structure for all backend users.';
61 $needsExecution =
false;
66 if (!is_array($userConfig)) {
70 array_walk_recursive($userConfig,
function (&$item) use (&$needsExecution) {
71 if ($item instanceof \stdClass) {
72 $needsExecution =
true;
76 if ($needsExecution) {
81 return $needsExecution;
90 DatabaseUpdatedPrerequisite::class
104 if (!is_array($userConfig)) {
108 array_walk_recursive($userConfig,
function (&$item) {
109 if ($item instanceof \stdClass) {
110 $item = json_decode(json_encode($item),
true);
122 return unserialize($userConfig, [
'allowed_classes' => [
'stdClass']]);
127 $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)
128 ->getQueryBuilderForTable(
'be_users');
129 $queryBuilder->getRestrictions()->removeAll();
130 $statement = $queryBuilder
131 ->select(
'uid',
'uc')
134 $queryBuilder->expr()->like(
136 $queryBuilder->createNamedParameter(
142 return $statement->execute();
147 $connection = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable(
'be_users');
148 $connection->update(
'be_users', [
'uc' => serialize($userConfig)], [
'uid' => $userId], [\PDO::PARAM_LOB, \PDO::PARAM_INT]);