Warning: include_once(/var/www/html/pmwiki-2.2.86/cookbook/soap4pmwiki/soap4pmwiki.php): failed to open stream: No such file or directory in /var/www/html/fields/dbp11/local/config.php on line 4

Warning: include_once(): Failed opening '/var/www/html/pmwiki-2.2.86/cookbook/soap4pmwiki/soap4pmwiki.php' for inclusion (include_path='.:/opt/php/lib/php') in /var/www/html/fields/dbp11/local/config.php on line 4

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/fields/dbp11/local/config.php:4) in /var/www/html/pmwiki-2.2.86/pmwiki.php on line 1250
Datenbankpraktikum SS 2011 - Controller - Rollen

Rollenkonzept:

Ein Rollenkonzept wird in der Informatik genutzt, um zwischen den verschiedenen Arten von Nutzern einer Anwendung zu unterscheiden und ihnen allgemein verschiedene Rechte, Sichten etc. zuzuteilen.

Implementierungsmöglichkeiten der Rollen

Bei der Implementierung eines solchen Konzeptes müssen mehrere Design-Ansätze gegeneinander abgewogen werden:

Wie viele Rollen soll ein Benutzer einnehmen können? Zuerst muss entschieden werden, an welchen Stellen verschiedene Rollen benötigt werden und wie differenziert diese sein sollen. Also ob zum Beispiel ein Moderator in einem Forum nur in einem Bereich erweiterte Rechte besitzt und zu diesen noch weitere Bereiche hinzugefügt werden können, was in einer N : M-Beziehung zwischen den Moderatoren und den Forenbereichen besteht oder ob er nur einen Bereich bzw. das gesamte Forum moderieren kann, was in einer N : 1-Beziehung zwischen den Moderatoren und den Bereichen resultieren würde.

Wie wird das Rollenkonzept in der Datenbank repräsentiert? Dieses ist auf zwei Arten möglich. Zum einen kann man für jede Rolle eine eigenständige Entitäts-Klasse implementieren, was den Vorteil hat, dass man große Unterschiede zwischen Eigenschaften der einzelnen Rolleninhaber machen kann. Jedoch verkompliziert dies eine mögliche spätere Veränderung der Rolle eines Nutzers. Außerdem ist der Anpassungsaufwand der restlichen Applikation für Anwendungen, bei denen der Unterschied zwischen den einzelnen Rollen nicht so wichtig ist, größer als der daraus resultierende Gewinn. Die andere Möglichkeit Rollen zu implementieren, ist es dem User ein zusätzliches Attribut hinzuzufügen, welches dann bei einer Unterscheidung der verschiedenen Rollen abgefragt werden kann; dies ist eine einfache Implementierung, welche außerdem die Möglichkeit bietet, dass man dem Administrator die Fähigkeit gibt weitere Moderatoren etc. einzusetzen, ohne dass jeweils eine Entität zerstört und neu aufgebaut werden muss.

Unser Rollenkonzept

Wir haben für eine relativ einfache Lösung entschieden, da wir keinerlei komplexe Zusammenhänge zwischen verschiedenen Rollen implementieren mussten, sondern nur eine Abgrenzung zwischen den Rechten von Mitgliedern und Administratoren erreichen wollten. Wir vergeben zwar auch bei den Aufrufen eines Trips verschiedene Rollen, allerdings sind diese nur für diesen eine Fahrt gültig und werden auf anderen Wegen in der Datenbank festgelegt.(s.o.) Infolge der geringen Komplexität der Rollenverhältnisse haben wir uns dafür entschieden, dass jeder Benutzer nur eine Rolle einnehmen kann und dass diese mittels eines Attributes innerhalb des User-Modells festgelegt wird, da uns der Aufwand der Anpassung unserer Anwendung an eine neue Nutzer-Entität Administrator bei den geringen Unterschieden als nicht lohnenswert erschien.

Rechte der verschiedenen Rollen

Nicht angemeldete Nutzer erhalten keinerlei Zugriff auf Informationen oder andere Inhalte, sondern können sich ausschließlich anmelden bzw. neu registrieren. Ein Administrator hat komplette Zugriffs- und Editierrechte für die gesamte Anwendung. Ausgenommen sind hiervon allerdings die privaten Nachrichten zwischen Mitgliedern. Ein Nutzer kann jegliche Inhalte der Anwendung erstellen. Ein Nutzer hat das Recht die von ihm selbst erstellten Inhalte zu lesen, zu editieren und zu löschen. Eine Ausnahme stellt hier die Löschung von bereits versendeten Nachrichten dar. Außerdem kann er die nicht versteckten Informationen und die Ratings über den Fahrer und das genutzte Auto von angebotenen Fahrten einsehen. Die Profile der Mitfahrer einer Fahrt kann ein Benutzer einsehen, wenn er ein bestätigter Teilnehmer dieser Fahrt ist. Ein Nutzer kann selbstverständlich alle Nachrichten, die er geschrieben bzw. erhalten hat einsehen, diese sind allerdings von ihm selbst nicht global löschbar, sondern nur in seiner persönlichen Anzeige entfernbar.

Die Rollen werden vornehmlich mittels der Rechteverwaltung implementiert, allerdings erhält ein Administrator auch stärkeren direkten Zugriff auf Dateien, was sich vor allem in der View äußern sollte. Dies konnte allerdings in den drei Wochen des Praktikums aufgrund von Zeitmangel nicht mehr verwirklicht werden.


Page last modified on August 21, 2011, at 01:58 PM