php.de

Zurück   php.de > Webentwicklung > Software-Design

Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 3 Stimmen, 2,33 durchschnittlich.
Alt 14.04.2011, 00:24  
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 Rightmanagement mit ZEND Framework

Hallo,

ich habe eine Webapplikation, mit welcher man bestimmte Usergruppen erstellen kann und diesen Usergruppen auch variabel Rechte zuweisen kann.

Beispiel:
Gruppe1 => Recht1

Recht1 ist fest definiert, man kann selbst keine eigenen Rechte hinzufügen.

Nun benutze ich das ZEND Framework und muss irgendwie abfragen, ob der User welcher eingeloggt ist in diese Gruppe gehört um Aktion XY wofür Recht1 benötigt wird auszuführen.

Vorher habe ich es so gemacht, dass alle Gruppen in das $_Session Array gespeichert werden.

Ist natürlich doof, wenn man eingeloggt ist, die Rechte entzogen bekommt es sich aber nichts updated weil es ebend noch auf dem Server im $_SESSION Array gespeichert ist.

Nun habe ich mir gedacht, dass das ZEND Framework doch für solche Dinge
sicher etwas parrat haben müsste um es zu vereinfachen.

Denn allg. das Rechtemanagement bei Usern kommt doch so gut wie in jeder Applikation vor...

Falls ZEND dies nicht besitzt, wie macht ihr es ?

Mir würde auf anhieb einfallen dass ich anhand der gesetzten UserID in $_Session mir die Gruppen hole welche er gehört und dann überprüfe ob Recht XY vorhanden ist.

Gibt es nocht andere (vllt sogar Zend spezifische) Methoden ?

Danke im voraus,

Catcher


P.S.:
Leider spuckt google unter "Zend rightmanagement" gar nichts aus... wahrscheinlich das falsche Wort zum suchen ?
dreamcatcher ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 14.04.2011, 00:47  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von dreamcatcher Beitrag anzeigen
Leider spuckt google unter "Zend rightmanagement" gar nichts aus... wahrscheinlich das falsche Wort zum suchen ?
http://www.google.com/search?q=zend+...ole+management -> http://framework.zend.com/manual/en/...roduction.html
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 14.04.2011, 01:37  
Erfahrener Benutzer
 
Registriert seit: 21.12.2009
Beiträge: 415
PHP-Kenntnisse:
Fortgeschritten
G.Schuster ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich halte den Tipp mal allgemeiner, damit du gleich das richtige in die Favoriten packst: http://framework.zend.com/manual/en/
Scheint dir ja unbekannt zu sein, nachdem dir noch nichtmal die ACL begegnet ist.
__________________
actra.development - Schwabstr. 2 - 70825 Münchingen
www.actra.de/velopment/ - eMail: php.de@actra.de
Zend Certified Engineer for PHP5
G.Schuster ist offline   Mit Zitat antworten
Alt 14.04.2011, 05:39  
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

@Chris, genau das war es, danke

Zitat:
Zitat von G.Schuster Beitrag anzeigen
Ich halte den Tipp mal allgemeiner, damit du gleich das richtige in die Favoriten packst: http://framework.zend.com/manual/en/
Scheint dir ja unbekannt zu sein, nachdem dir noch nichtmal die ACL begegnet ist.
Habe ebend auf deine Seite gesehen, dass du die Prüfung der Firma Zend bestanden hast und somit dein Zertifikat erhalten hast.

Wie hast du dich auf die Prüfung vorbereitet bzw. welches Material hast du vor der Prüfung gepaukt ?

Hatte bereits im Internet geschaut und ein Buch gefunden, welcher jedoch schlecht bewertet wurde da der Inhalt wohl nicht korrekt sein soll z.T..

Würde mich über eine Antwort riesig freuen
dreamcatcher ist offline   Mit Zitat antworten
Alt 14.04.2011, 09:40  
Erfahrener Benutzer
 
Benutzerbild von splasch
 
Registriert seit: 05.01.2009
Beiträge: 474
PHP-Kenntnisse:
Fortgeschritten
splasch kann nur auf Besserung hoffen
Standard

Am einfachsten ist es wenn du die Zend ACL dafür verwendest.

Hier mal ein kleines Beispiel aus einem Game was mit Zend erstellt worden ist:
PHP-Code:
<?php
class Civitas_Acl_Public extends Zend_Acl
{
    public function 
__construct()
    {
        
// Rollen hinzufügen
        
$this->addRole(new Zend_Acl_Role('guest'));
        
$this->addRole(new Zend_Acl_Role('member'), 'guest');
        
$this->addRole(new Zend_Acl_Role('admin'));
        
        
// Ressourcen hinzufügen
        
$this->addResource(new Zend_Acl_Resource('index'));
        
$this->addResource(new Zend_Acl_Resource('downloads'));
        
$this->addResource(new Zend_Acl_Resource('history'));
        
$this->addResource(new Zend_Acl_Resource('information'));
        
$this->addResource(new Zend_Acl_Resource('rules'));
        
$this->addResource(new Zend_Acl_Resource('screenshots'));
        
$this->addResource(new Zend_Acl_Resource('team'));
        
$this->addResource(new Zend_Acl_Resource('news'));
        
$this->addResource(new Zend_Acl_Resource('user'));
        
        
// Rechte hinzufügen
        
$this->allow('guest''index');
        
$this->allow('admin''index');
        
        
$this->allow('guest''downloads');
        
$this->allow('admin''downloads');
        
        
$this->allow('guest''history');
        
$this->allow('admin''history');
        
        
$this->allow('guest''information');
        
$this->allow('admin''information');
        
        
$this->allow('guest''rules');
        
$this->allow('admin''rules');
        
        
$this->allow('guest''screenshots');
        
$this->allow('admin''screenshots');
        
        
$this->allow('guest''team');
        
$this->allow('admin''team');
        
        
$this->allow('guest''news', array('index''list''show'));
        
$this->allow('admin''news');
        
        
$this->allow('guest''user', array('index''login''register''forbidden'));
        
$this->allow('member''user');
        
$this->deny('member''user', array('login''register'));
        
$this->allow('admin''user'); 
    }
}
splasch ist offline   Mit Zitat antworten
Alt 14.04.2011, 20:57  
Erfahrener Benutzer
 
Registriert seit: 11.04.2011
Beiträge: 260
PHP-Kenntnisse:
Fortgeschritten
lcrash wird schon bald berühmt werden
Standard

Irrc kann in Zend_Auth::allow() auch ein * als Platzhalter für alle Resourcen angegeben werden (sinnvoll für die Role „admin”).
lcrash ist offline   Mit Zitat antworten
Alt 15.04.2011, 00:55  
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

Also dank euch habe ich noch eine weitere Quelle mit Sourcecodes gefunden:
http://stackoverflow.com/questions/5...best-practises

Soweit ich es sehe muss man aber vorher immer wissen, was es für Rollen gibt denen man dann eine Permission zuweist die Ressource sehen zu dürfen.

Ist dies richtig so aufgefasst ?
(In den Beispielen sah ich es immer so)

In meine Webapplikationen ist es jedoch so, dass Rollen selbst angelegt werden können und die Rechte eine Ressource zu benutzen für diese Gruppe selbst festgelegt werden kann.

Dann ist es dafür scheinbar nicht geeigent... sehe ich das richtig ?



Was ich außerdem dazu fand, was denke ich meine Vermutung bestätigt:

Zitat:
Zend_Acl was designed in such a way that it does not require any particular backend technology such as a database or cache server for storage of the ACL data. Its complete PHP implementation enables customized administration tools to be built upon Zend_Acl with relative ease and flexibility.

Quelle:http://framework.zend.com/manual/en/....advanced.html

Geändert von dreamcatcher (15.04.2011 um 01:09 Uhr).
dreamcatcher ist offline   Mit Zitat antworten
Alt 15.04.2011, 08:37  
Erfahrener Benutzer
 
Registriert seit: 11.04.2011
Beiträge: 260
PHP-Kenntnisse:
Fortgeschritten
lcrash wird schon bald berühmt werden
Standard

Da steht „does not require”. D.h. nicht dass deine Rules nicht von einer Datenbank oder Model kommen dürfen. Ich würde empfehlen auch auf Zend_Acl aufzubauen, da einige Komponenten Zend_Acl unterstützen (Zend_Navigation z.B.).

Siehe: http://framework.zend.com/wiki/displ...tabase+backend
lcrash ist offline   Mit Zitat antworten
Alt 15.04.2011, 09:18  
Erfahrener Benutzer
 
Registriert seit: 21.12.2009
Beiträge: 415
PHP-Kenntnisse:
Fortgeschritten
G.Schuster ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von dreamcatcher Beitrag anzeigen
Dann ist es dafür scheinbar nicht geeigent... sehe ich das richtig ?

Was ich außerdem dazu fand, was denke ich meine Vermutung bestätigt:
Du zitierst einen Satz, der genau das beschreibt, was du vorhast, und liest daraus, dass das, was du vorhast, nicht möglich wäre?
Na die Logik erklär' mir mal.
Oder was genau an "Its complete PHP implementation enables customized administration tools to be built upon Zend_Acl with relative ease and flexibility." bedeutet für dich, dass man keine Administration für die ACL schreiben kann?

Über ein Zertifizierung solltest du meiner meinung nach mit diesem Wissensstand noch gar nicht nachdenken, die macht nur Sinn, wenn entsprechende Erfahrung vorliegt, nicht, wenn man sich mal eben drei Bücher reinkloppen kann.

[...] den Rest denk' ich mir jetzt nur [...]
__________________
actra.development - Schwabstr. 2 - 70825 Münchingen
www.actra.de/velopment/ - eMail: php.de@actra.de
Zend Certified Engineer for PHP5
G.Schuster 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
Zend Framework & Model-Controller Kopplung shredding PHP Einsteiger 5 14.03.2011 11:42
[Erledigt] Fragensammlung Zend Framework Start shredding PHP Einsteiger 4 13.03.2011 12:10
Zend Framework Schulung abdullah Beruflich 2 16.01.2011 13:00
[Erledigt] Zend Framework erlernen 0815Neo PHP Einsteiger 2 07.01.2011 21:34
Webentwickler (PHP, Zend Framework, Ruby on Rails) sucht neue Projekte tbuehl Beruflich 0 04.10.2010 15:18
Biete: PHP-Software-Entwicklung mit Zend Framework iws-sasa Beruflich 0 21.09.2010 17:27
Zend Framework oder Symfony alsahmut Off-Topic Diskussionen 1 10.07.2010 20:36
Zend Framework ByStones PHP Tipps 2010 10 09.06.2010 16:10
Zend Webinare robo47 Off-Topic Diskussionen 0 16.03.2010 10:02
[Erledigt] Zend Framework Installation : Error 500 Puccini PHP Tipps 2010 2 10.02.2010 08:22
[S] Zend Framework Coder ThisRockZ Beitragsarchiv 0 14.10.2009 13:14
Kohana Framework / CakePHP / Zend ramses PHP-Fortgeschrittene 6 29.09.2009 01:38
Suche Schüler o.ä. mit Zend Framework Erfahrung -> 200 Euro mrmojo Beitragsarchiv 3 10.01.2009 15:38
Zend Studio for Eclipse und Zend Framework KeKs0r PHP-Fortgeschrittene 5 15.12.2008 15:10
Zend Framework Melchior PHP-Fortgeschrittene 29 13.03.2008 21:12

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
zend acl database, zend framework acl, zend framework user management, zend framework user gruppen, user right management php, php user right management, zend server acl tutorial, zend framework right management, zend acl tutorial, zend user permissions management, zend framework zertifizierung question, zend example user management backend, zend_acl rollen abfragen, was kann die zend framework wofür, zend framework rights management interface, user right management zend framework, role management zend backend, user right management zend, right management php, php framework rechte

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:34 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