php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.01.2012, 18:46  
Erfahrener Benutzer
 
Benutzerbild von dreamcatcher
 
Registriert seit: 28.12.2010
Beiträge: 603
PHP-Kenntnisse:
Anfänger
dreamcatcher wird schon bald berühmt werden
Standard ZF Zend_Acl | Überprüfen ob Daten angezeigt werden dürfen

Ziel:
Eine Seite auszuliefern, die je nach Userrole eine andere View anzeigt.

Derzeitige Methode1:
Das ACL Plugin, welches die preDispatch Methode beinhaltet und dort checkt, ob dem User erlaubt wird auf eine bestimmte Seite Seite zuzugreifen heißt "Default_Plugin_AccessCheck".

Dieses wird in der Hauptbootstrap als Plugin registriert.

Jetzt habe ich im Plugin eine getAcl() Methode geschrieben.
Um mir die aktuelle ACL zu holen gehe ich im Controller der angeforderten Action wie folgt vor:

PHP-Code:
        $Default_Plugin_AccessCheck Zend_Controller_Front::getInstance()->getPlugin('Default_Plugin_AccessCheck');
        
        
$this->view->role Zend_Registry::get('role');
        
$this->view->acl $Default_Plugin_AccessCheck->getAcl(); 
In der View frage ich dann via
PHP-Code:
if ($acl->isAllowed($role'default:index''index')) { echo 'anzeigen'; } else { echo '';}; 
ab, ob derjenige Zugriff auf die Action hat und zeige entsprechend den Button/das Element an oder nicht.

Idee:
Als nächste Idee kam mir, die Teile, die nicht jedem sichtbar sein sollen, in extra Views auszulagern (viewsub.phtml) und sie in der "Hauptview" (view.phtml) zusammen zu setzen.

Beispiel-Hauptview (view.phtml):
PHP-Code:
[...]
<?php echo $this->viewsub?>
[...]
Allerdings hab ich via Google keine Anhaltspunkte gefunden, dass das direkt geht.

Hintergrund dieser Idee:
Ohne eigenen Check/Funktion den bereits integrierten/hausinternen ACL Check anzustoßen, da eine neue Resource+Action angefordert wird.

__________________________________________________

Ich weiß allg. nicht wie es sonst umgesetzt wird, die derzeitige Methode habe ich mir "zusammen gebastelt".

Daher lauten die Fragen:

1.) Wie geht man vor, wenn man dem User nur bestimmte Elemente anzeigen lassen möchte?

2.) Ist meine derzeitige Methode sinnvoll?

3.) Gibt es eine bessere Alternative?

Geändert von dreamcatcher (14.01.2012 um 19:07 Uhr).
dreamcatcher ist gerade online   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 14.01.2012, 19:45  
Erfahrener Benutzer
 
Registriert seit: 11.04.2011
Beiträge: 260
PHP-Kenntnisse:
Fortgeschritten
lcrash wird schon bald berühmt werden
Standard

In Zend_Navigation Zend_Acl registrieren und über den Navigation-View-Helper testen ob der Zugriff erlaubt ist.
lcrash ist offline   Mit Zitat antworten
Alt 14.01.2012, 21:18  
Erfahrener Benutzer
 
Registriert seit: 28.05.2008
Beiträge: 2.094
PHP-Kenntnisse:
Fortgeschritten
rudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nett
Standard

Zitat:
Idee:
Als nächste Idee kam mir, die Teile, die nicht jedem sichtbar sein sollen, in extra Views auszulagern (viewsub.phtml) und sie in der "Hauptview" (view.phtml) zusammen zu setzen.
Das geht mit dem partial view helper. Allerdings wärs vorteilhaft, pro Benutzerrolle eigene Module anzulegen, wenn das ganze ausartet.

PHP-Code:
if( $xyz ) {
    echo 
$this->partial"viewsub.phtml"$params );

__________________
++++ Wieder einer ins Netz gegangen: Phishers Fritz zufrieden ++++
Blog
rudygotya ist offline   Mit Zitat antworten
Alt 15.01.2012, 16:49  
Erfahrener Benutzer
 
Registriert seit: 11.04.2011
Beiträge: 260
PHP-Kenntnisse:
Fortgeschritten
lcrash wird schon bald berühmt werden
Standard

Zu partial() siehe: http://framework.zend.com/manual/en/...e.view.partial
lcrash ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Daten in einer html-Tabelle auswählen und auf neuer Seite genauere Daten e haemoglobin Datenbanken 4 09.08.2009 19:10
Website in XML-Format öffnen und Daten in DB schreiben...aber nur wie ? Oli Krause PHP Tipps 2009 11 22.03.2009 12:36
Registrierte User sollen ihre Daten ändern können 54ch4 PHP Tipps 2009 17 14.03.2009 14:29
[Erledigt] php rechnet nicht und daten werden falsch angezeigt djscaleo PHP Tipps 2008 6 02.11.2008 16:15
Kontaktformular - Daten vor dem Absenden überprüfen tayke PHP Tipps 2007 22 19.07.2007 22:34
Mehrere Arrays unterschiedlicher Größe kombinieren querfisch PHP Tipps 2007 9 31.03.2007 21:34
POST Daten ohne Formular übergeben? &lt;Daniel&gt; PHP Tipps 2006 8 19.06.2006 14:34
Session Frage - gleiches Formular 2 mal alle Daten behalten NetLook PHP Tipps 2007 1 21.11.2005 18:42
[Erledigt] sql daten für einen kunden auslesen/ändern im Formular PHP Tipps 2005-2 3 12.10.2005 08:36
[Erledigt] Daten aus mehreren Tabellen holen Datenbanken 0 19.09.2005 17:14
Daten auslesen und ändern Datenbanken 2 17.09.2005 19:28
Daten eintragen und auslesen Rettungsdackel Datenbanken 0 14.09.2005 16:29
Daten in Datenbank ändern PHP Tipps 2005 3 27.01.2005 14:40
daten werden nicht angezeigt! DB Logimann PHP Tipps 2005 2 18.01.2005 11:53
array_push nur in begrenzter Anzahl ausführen ? PHP Tipps 2004 2 07.09.2004 09:05

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
zend_acl get data getinstance, auf andere view.phtml, zend_acl navigation partial, zend acl wird falsch angezeigt, acl roles navigation partial view

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:51 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum