52 $view->assignMultiple([
53 'currentUser' => $backendUser->user,
54 'switchUserMode' => $backendUser->user[
'ses_backuserid'],
56 return $view->render();
69 $backendModuleRepository = GeneralUtility::makeInstance(BackendModuleRepository::class);
70 $uriBuilder = GeneralUtility::makeInstance(UriBuilder::class);
72 $mostRecentUsers = [];
74 && $backendUser->isAdmin()
75 && (
int)$backendUser->user[
'ses_backuserid'] === 0
76 && isset($backendUser->uc[
'recentSwitchedToUsers'])
77 && is_array($backendUser->uc[
'recentSwitchedToUsers'])
79 $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable(
'be_users');
80 $result = $queryBuilder
81 ->select(
'uid',
'username',
'realName')
84 $queryBuilder->expr()->in(
'uid', $queryBuilder->createNamedParameter($backendUser->uc[
'recentSwitchedToUsers'], Connection::PARAM_INT_ARRAY))
88 $mostRecentUsers = array_flip($backendUser->uc[
'recentSwitchedToUsers']);
90 while ($row = $result->fetch()) {
91 $row[
'switchUserLink'] = (string)$uriBuilder->buildUriFromRoute(
92 'system_BeuserTxBeuser',
94 'SwitchUser' => $row[
'uid']
98 $mostRecentUsers[$row[
'uid']] = $row;
102 $mostRecentUsers = array_filter($mostRecentUsers,
function ($record) {
103 return is_array($record);
106 $availableUsers = array_keys($mostRecentUsers);
107 if (!empty(array_diff($backendUser->uc[
'recentSwitchedToUsers'], $availableUsers))) {
108 $backendUser->uc[
'recentSwitchedToUsers'] = $availableUsers;
109 $backendUser->writeUC();
114 $view->assignMultiple([
115 'modules' => $backendModuleRepository->findByModuleName(
'user')->getChildren(),
116 'logoutUrl' => (
string)$uriBuilder->buildUriFromRoute(
'logout'),
117 'switchUserMode' => $this->getBackendUser()->user[
'ses_backuserid'],
118 'recentUsers' => $mostRecentUsers,
120 return $view->render();
131 'class' =>
'toolbar-item-user'
134 $result[
'class'] .=
' su-user';
178 $view = GeneralUtility::makeInstance(StandaloneView::class);
179 $view->setLayoutRootPaths([
'EXT:backend/Resources/Private/Layouts']);
180 $view->setPartialRootPaths([
'EXT:backend/Resources/Private/Partials/ToolbarItems']);
181 $view->setTemplateRootPaths([
'EXT:backend/Resources/Private/Templates/ToolbarItems']);
183 $view->setTemplate($filename);
185 $view->getRequest()->setControllerExtensionName(
'Backend');