2 namespace TYPO3\CMS\Beuser\Controller;
94 if ($this->request->hasArgument(
'id')) {
95 $this->
id = (int)$this->request->getArgument(
'id');
101 : $this->
getBackendUser()->getSessionData(self::SESSION_PREFIX .
'depth');
102 if ($this->request->hasArgument(
'depth')) {
103 $this->depth = (int)$this->request->getArgument(
'depth');
105 $this->
getBackendUser()->setAndSaveSessionData(self::SESSION_PREFIX .
'depth', $this->depth);
119 parent::initializeView($view);
122 BackendUtility::viewonclick(
123 $this->pageInfo[
'uid'],
'',
130 $view->getModuleTemplate()->getPageRenderer()->loadRequireJsModule(
'TYPO3/CMS/Beuser/Permissions');
131 $view->getModuleTemplate()->addJavaScriptCode(
134 function jumpToUrl(URL) {
135 window.location.href = URL;
140 $this->registerDocHeaderButtons();
141 $this->view->getModuleTemplate()->setFlashMessageQueue($this->controllerContext->getFlashMessageQueue());
151 protected function registerDocHeaderButtons()
154 $buttonBar = $this->view->getModuleTemplate()->getDocHeaderComponent()->getButtonBar();
156 $moduleName = $currentRequest->getPluginName();
157 $getVars = $this->request->getArguments();
160 if (empty($getVars)) {
161 $modulePrefix = strtolower(
'tx_' .
$extensionName .
'_' . $moduleName);
162 $getVars = array(
'id',
'M', $modulePrefix);
164 $shortcutButton = $buttonBar->makeShortcutButton()
165 ->setModuleName($moduleName)
166 ->setGetVariables($getVars);
167 $buttonBar->addButton($shortcutButton);
170 $iconFactory = $this->view->getModuleTemplate()->getIconFactory();
171 $viewButton = $buttonBar->makeLinkButton()
174 ->setTitle($this->
getLanguageService()->sL(
'LLL:EXT:lang/locallang_core.xlf:labels.showPage',
true))
187 public function indexAction()
190 $this->pageInfo = array(
'title' =>
'[root-level]',
'uid' => 0,
'pid' => 0);
203 $depthOptions = array();
204 $url = $this->uriBuilder->reset()->setArguments(array(
206 'depth' =>
'__DEPTH__',
208 ))->buildBackendUri();
209 foreach (array(1, 2, 3, 4, 10) as $depthLevel) {
210 $depthOptions[$depthLevel] = $depthLevel .
' ' .
LocalizationUtility::translate(
'LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:levels',
'beuser');
212 $this->view->assign(
'depthBaseUrl',
$url);
213 $this->view->assign(
'depth', $this->depth);
214 $this->view->assign(
'depthOptions', $depthOptions);
217 $this->view->assign(
'beUsers', $beUserArray);
219 $this->view->assign(
'beGroups', $beGroupArray);
224 $tree->addField(
'perms_user',
true);
225 $tree->addField(
'perms_group',
true);
226 $tree->addField(
'perms_everybody',
true);
227 $tree->addField(
'perms_userid',
true);
228 $tree->addField(
'perms_groupid',
true);
229 $tree->addField(
'hidden');
230 $tree->addField(
'fe_group');
231 $tree->addField(
'starttime');
232 $tree->addField(
'endtime');
233 $tree->addField(
'editlock');
237 $tree->tree[] = array(
'row' => $this->pageInfo,
'HTML' => $tree->getIcon($this->id));
239 $tree->tree[] = array(
'row' => $this->pageInfo,
'HTML' => $tree->getRootIcon($this->pageInfo));
241 $tree->getTree($this->
id, $this->depth);
242 $this->view->assign(
'viewTree', $tree->tree);
255 $this->view->assign(
'id', $this->
id);
256 $this->view->assign(
'depth', $this->depth);
259 $this->pageInfo = array(
'title' =>
'[root-level]',
'uid' => 0,
'pid' => 0);
274 $beUserDataArray = array(0 =>
LocalizationUtility::translate(
'LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:selectNone',
'beuser'));
275 foreach ($beUserArray as $uid => &$row) {
276 $beUserDataArray[$uid] = $row[
'username'];
278 $beUserDataArray[-1] =
LocalizationUtility::translate(
'LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:selectUnchanged',
'beuser');
279 $this->view->assign(
'currentBeUser', $this->pageInfo[
'perms_userid']);
280 $this->view->assign(
'beUserData', $beUserDataArray);
283 $beGroupDataArray = array(0 =>
LocalizationUtility::translate(
'LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:selectNone',
'beuser'));
284 foreach ($beGroupArray as $uid => $row) {
285 $beGroupDataArray[$uid] = $row[
'title'];
287 $beGroupDataArray[-1] =
LocalizationUtility::translate(
'LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:selectUnchanged',
'beuser');
288 $this->view->assign(
'currentBeGroup', $this->pageInfo[
'perms_groupid']);
289 $this->view->assign(
'beGroupData', $beGroupDataArray);
290 $this->view->assign(
'pageInfo', $this->pageInfo);
291 $this->view->assign(
'returnId', $this->returnId);
304 if (!empty($data[
'pages'])) {
305 foreach ($data[
'pages'] as $pageUid => $properties) {
307 if ((
int)$properties[
'perms_userid'] === -1) {
308 unset($properties[
'perms_userid']);
310 if ((
int)$properties[
'perms_groupid'] === -1) {
311 unset($properties[
'perms_groupid']);
315 'uid = ' . (
int)$pageUid,
318 if (!empty($mirror[
'pages'][$pageUid])) {
320 foreach ($mirrorPages as $mirrorPageUid) {
323 'uid = ' . (
int)$mirrorPageUid,
330 $this->
redirect(
'index', null, null, array(
'id' => $this->returnId,
'depth' => $this->depth));
359 $tree->addField(
'perms_userid',
true);
363 $tree->getTree($this->
id, $this->getLevels,
'');
367 if ($this->
getBackendUser()->user[
'uid'] && !empty($tree->orig_ids_hierarchy)) {
371 $labelPagesAffected =
LocalizationUtility::translate(
'LLL:EXT:beuser/Resources/Private/Language/locallang_mod_permission.xlf:pages_affected',
'beuser');
372 $theIdListArr = array();
375 for ($a = $this->getLevels; $a > 0; $a--) {
376 if (is_array($tree->orig_ids_hierarchy[$a])) {
377 foreach ($tree->orig_ids_hierarchy[$a] as $theId) {
378 $theIdListArr[] = $theId;
380 $lKey = $this->getLevels - $a + 1;
381 $options[implode(
',', $theIdListArr)] = $labelRecursive .
' ' . $lKey .
' ' . $labelLevels .
382 ' (' . count($theIdListArr) .
' ' . $labelPagesAffected .
')';