[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