我已将自己的调度程序任务添加到TYPO3,例如,如有必要,将创建新页面。调度程序由特殊的_cli_scheduler
用户运行,如果我用它创建新页面,其他编辑者可能看不到它。
我使用DataHandler
(以前的TCE
)来创建新网页。 start()
方法接受可选参数 - 将用作页面创建者的备用用户对象。
拥有uid
编辑用户,如何完全实例化\TYPO3\CMS\Core\Authentication\BackendUserAuthentication
对象,然后我提供给DataHandler::start()
?
我在考虑使用对象管理器获取上述类的新实例,并在其上设置uid
,但DataHandler
检查BackendUserAuthentication
对象的其他一些属性,如权限等。
获取BackendUserAuthentication
对象的所有用户数据的正确方法是什么?我可以使用任何工厂或存储库吗?
答案 0 :(得分:0)
没有人能够帮助我,所以我开始挖掘。经过一些逆向工程后,只要你知道他们的ID,我就找到了一个加载任何后端用户的完整方法。我使用以下方法创建了一个只读存储库:
public function fetchById($userId)
{
/** @var BackendUserAuthentication $user */
$user = $this->objectManager->get(BackendUserAuthentication::class);
$user->setBeUserByUid($userId);
$user->resetUC();
$user->fetchGroupData();
$user->getFileStorages();
$user->workspaceInit();
$user->setDefaultWorkspace();
return $user;
}
它将执行以下操作:
$user
属性UC
我已经转储了由此方法创建的用户,并与当前登录的用户进行了比较,似乎已经设置了所有必需的属性。
如果我错过了什么,请告诉我。