[TYPO3-german] Überprüfung ob Seite für User erlaubt ist
Dr. Dieter Porth
typo3 at mobger.de
Sat Feb 4 21:25:20 CET 2017
Hi,
eigentlich wollte ich nur nachtragen, dass man bei einer allgemeinen
Version sich beim Viewhelper strukturell am Case-Viewhelper erientieren
sollte. Dann könnte man je nach User einen Partial-Switch ausführen.
Jetzt stelle ich fest, dass die Formatierung für den PHP-Code richtig
zerschossen wurde.
Ich vermute, dass sich ein Programm am fehlenden schließenden aufhing.
Ich wage deshalb einen zweiten Versuch
Dieter
<?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; } } ?>
Am 04.02.2017 um 09:44 schrieb Dr. Dieter Porth:
> 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
> _______________________________________________
> 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