[TYPO3-german] Überprüfung ob Seite für User erlaubt ist
Dr. Dieter Porth
typo3 at mobger.de
Sat Feb 4 09:44:37 CET 2017
Hallo Stefan, Hallo Andrea,
Wenn du eine Allgemeine Lösung haben möchtest, würde die Abfrage in
einen Viewhelper auslagern und die Anzeige kapseln. Denn die Frage nach
der Berechtigung ist ja 'unabhänngig' von der Frage der Datenausgaben.
In einem Projekt sieht mein Viewhelper so aus.
===============================================================================
<?php namespace Porth\Positioner\ViewHelpers;
/*************************************************************** *
Copyright notice * * (c) 2016 Dr. Dieter Porth <info at mobger.de>, private
* * All rights reserved *
***************************************************************/ use
TYPO3\CMS\Fluid\Core\Rendering\RenderingContextInterface; use
TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper; use
TYPO3\CMS\Fluid\Core\ViewHelper\Facets\CompilableInterface; class
BurkaViewHelper extends AbstractViewHelper { const
POSITIONER_UTILITY_BE_USER_IS_LOGGIN = 'login_be'; const
POSITIONER_UTILITY_BE_USER_IS_ADMIN = 'admin_be'; /** * checks the
status of the status of current user * * @param string $status the
required status of current user * @param string $data data overwrite the
childrens-content - assigned only for inline-style * @return bool|string
*/ public function render($status, $data = null) { if ($data === null) {
$data = $this->renderChildren(); } if (!$data) { return false; } switch
($status) { case self::POSITIONER_UTILITY_BE_USER_IS_ADMIN: if
(is_object($GLOBALS['BE_USER'])) {
if($GLOBALS['BE_USER']->extAdmEnabled) { return $data; } } break; case
self::POSITIONER_UTILITY_BE_USER_IS_LOGGIN: if
(is_object($GLOBALS['BE_USER'])) { return $data; } break; } return
false; } }
======================================================================
Im Template/Partial sieht es dann so aus:
======================================================================
<?xml version="1.0"?>
<html xmlns:f="http://typo3.org/ns/TYPO3/Fluid/ViewHelpers"
xmlns:porth="http://typo3.org/ns/Porth/Positioner/ViewHelpers" >
<head>
</head>
<body>
<f:section name="main">
Auszug aus Partial
<div style="position:absolute;
z-index: {zIndex};
{f:render(partial:'Position/PositionSymmetry',
section:'main',
arguments:{rid:ridPosition,
position:position,
symmetry:symmetry}
)}" class="nix" {porth:burka( status:'admin_be',
data:' data-fieldid=",{symParams.ridSymmetryFilpHorizontal},{symParams.ridSymmetryFilpVertical},{pictureParams.ridPicturePicture},{positionParams.ridPositionHorizontal},{positionParams.ridPositionVertical},{positionParams.ridPositionenZIndex},{positionParams.ridPositionMeasure},{dimensionParams.ridDimensionWidth},{dimensionParams.ridDimensionHeight},{dimensionParams.ridDimensionDimensionType},{dimensionParams.ridDimensionMeasure},"'
)}
>
Allgemein sichtbar
</div>
<porth:burka status="admin_be">
<div> wird nur dem Admin gezeigt, der hier im Frontend einen Comic stylen darf</div>
</porth:burka>
</f:section>
</body>
</html>
=========================================================================================
Ich hoffe, dass TYPO3 baldd mit einem allgemeinen Viewhelper sein
Rechtemanagment auf Template-Ebene optimiert.
Mit den Anmerkungen von Stefan könntest du also schnell den Viewhelper
oben für deine Ansprüche erweitern. Vielleicht mast du ihn auch hier
veröffentlichen? Mit besten Grüßen Dieter
Am 04.02.2017 um 09:07 schrieb Administrator www.Der-Mond.org:
> Hallo Andrea, ich habe vor einem ähnlichen Problem gestanden.
> Eigentlich kannst Du die Abfrage in nur einer Zeile ausführen. Hier
> mal mein Lösung zur Abfrage ob ein Benutzer angemeldet ist und ob er
> sich in der gewünschten Gruppe befindet. Du selber müsstest dann nur
> noch die entsprechende Seiten-UID einfügen: if (
> !$GLOBALS['TSFE']->fe_user->user['uid'] # Irgendein Benutzer
> angemeldet ? OR $GLOBALS['TSFE']->fe_user->user['usergroup'] <>
> 'UserGruppe' # gehört zur gewünschten Benutzergruppe )
> { $this->redirect(NULL, NULL, NULL, NULL, [Deine
> UID]); # Wenn oben nicht erfüllt, dann auf andere Seite
> umleiten } Vielleicht hilft Dir das ja :-) Gruß Stefan Am
> 03.02.2017 um 21:57 schrieb Andrea Schmuttermair:
>> Hi, gibt es eine Extbase Funktion, mit der man überprüfen kann ob
>> eine Seiten-UID für den eingeloggten User erlaubt und sichtbar ist?
>> Also ein Check auf fe_group Settings? Könnte ich zwar selber
>> programmieren, aber sowas müsste es doch eigentlich geben? Habe eine
>> Liste mit Links, doch für manche User sind nicht alle zugreifbar, und
>> dann will ich die Links auch nicht anzeigen lassen. LG Andrea
>> _______________________________________________ TYPO3-german mailing
>> list TYPO3-german at lists.typo3.org
>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
> _______________________________________________ TYPO3-german mailing
> list TYPO3-german at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
More information about the TYPO3-german
mailing list