[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