| | | | |
| |||||||
| Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | ||
| Supermoderator HD Registriert seit: 16.03.2008
Beiträge: 8.425
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Hi, Zitat:
Bei der Rechteverwaltung gehst du sehr starr vor. Du hast eine hübsche kleine Methode, mit der du prüfst, ob jemand Admin ist. Wenn du aber später weitere Gruppen hinzufügen willst, wirst du ins Schwimmen kommen. Ich würde den Kram über Beziehungen lösen und in Klassen kapseln. Ich halte es nicht für sinnvoll, die Berechtigungen in die User-Klasse zu schreiben, da du hier schnell an Grenzen stößt und auch nicht stark genug kapselst. Wenn du dann bei fehlender Berechtigung den gesamten Controller sperren willst, musst du den Check schon im Konstruktor einbauen. Wenn du einzelne Actions sperren willst, in der zugehörigen Methode. Du kannst in deinem Interface aber auch eine Methode bool hasPermission() einbauen, die automatisch vom Frontcontroller aufgerufen wird. Wichtig ist nur, dass du hier wirklich mit Interfaces arbeitest, um die Kompatibilität zu gewährleisten.
__________________ Refining Linux Advent Calendar series “24 Outstanding ZSH Gems” | |
| | |
| | |
| Moderator und Wett-König | Hallo zusammen, ich würde noch einen Schritt weiter gehen und die Verwaltung der Rechte (=Funktionsrechte; nicht zu verwechseln mit Rechte auf Objekte einer Anwendung) noch generischer gestalten. Hier findet sich dazu ein UML, das dem Benutzer über eine Rolle Permissions zuweist, die in einem Controller abgefragt werden können. Das hat den entscheidenen Vorteil, dass ich nicht starr an Methoden wie isAdmin() gebunden bin, sondern a) granularer abfragen kann, welche Funktionsberechtigungen ein Benutzer hat und b) eine Änderung meiner Datenstruktur (=Struktur der BenutzerVerwaltung und der Rollen / Permissions) nicht gleichzeitig mit einem Refactoring der API einhergeht. Was das Thema Workflows von Anfragen angeht, könnten dich vielleicht die UML-Diagramme Page-Controller und Front-Controller interessieren. Letzteres bietet dir die Möglichkeit beliebige Actions ausführen zu lassen, die dir z.B. ein Model aufbauen, das Informationen wie "Ist der Benutzer nun eingeloggt?" und "Was darf er eigentlich tun?" bereits ganz am Anfang des Requests geklärt werden können. So kannst du bei fehlender Berechtigung bereits vor der Ausführung von eigentlichem Programmcode auf eine andere Seite weiterleiten oder einen definierten View mit einer Fehlermeldung statt einer Bearbeiten-Maske anzeigen. Dies ist allerdings nur dann möglich, wenn du die Business-Schicht (Model einer Anwendung) nutzt um die Präsentation der Anwendung zu beeinflussen/zu steuern. Anregungen dazu finden sich hier.
__________________ Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| | |
| | ||||||
| Moderator und Wett-König | Hallo, Zitat:
Zitat:
Zitat:
- Galerie erstellen, bearbeiten, ... - Ordner erstellen, bearbeiten, ... - Bild-Upload - Bild-Bearbeiteung ist das sicher in anderer Form zu handhaben als ein Gästebuch oder eine einfache News-Verwaltung. Das ist eben der Vorteil einer generischen Rollendefinition über Permissions, da du dann sehr flexibel sagen kannst, wer was darf oder auch nicht. Zitat:
Zitat:
Any questions left?
__________________ Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |||||
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| aufteilung php projekt, klassen php module, php projekt module aufteilen, php rechteverwaltung modul, php projekt in module aufteilen, rechteverwaltung in php klasse controller, php action controller, php modul benutzerverwaltung, model user, php benutzerverwaltung rechteverwaltung, benutzerverwaltung php rollenbasiert |