Brauche Ideen für Authorization Modul

Fragen zur Planungsphase eines Rails-Projektes

Brauche Ideen für Authorization Modul

Beitragvon benneq am 21.03.2012, 23:51

Hallo,

ich stehe vor einem Problem: Ich bin dabei mir ein universelles Authorization Modul auszudenken, das alles(!) abdeckt. Es soll auf dem Whitelist-Modell aufbauen, d.h. ein User darf nur das, was ihm explizit erlaubt wurde.

Also hier die groben Voraussetzungen:
- Es gibt Benutzer (sowohl registrierte, als auch nicht registrierte)
- Ein Benutzer kann mehreren Rollen haben (der Benutzer kann aber auch keine Rolle haben, alternativ legt man einfach eine 'default' Rolle an, in die einfach jeder kommt)
- Es gibt viele Rollen. Prinzipiell reicht der Ansatz von CanCan, dass jede Methode im Controller gleichzeitig eine Rolle ist
- Das System muss Datenbank-Basiert sein, da die Administratoren dynamisch Rollen erzeugen können müssen und Benutzer einer Rolle hinzufügen oder entfernen

Damit lässt sich nun z.B. Folgendes abdecken (z.B. in einem Blog-System):
- Ich kann eine Gruppe von Autoren erstellen, die innerhalb des Blog-Models Einträge erstellen,editieren,löschen,ansehen können.
- Gleichzeitig kann ich allen anderen Benutzern nur die Möglichkeit des Lesens geben.

Soweit so gut. Jetzt muss das Ganze aber auch irgendwie eingeschränkt möglich sein, sodass jeder Autor nur in seinem eigenen Blog arbeiten darf. Innerhalb des Rails-Codes kann man das ziemlich einfach machen, aber das ist nicht mein Anliegen. Es soll irgendwie extern konfigurierbar sein.

Dazu kommt dann noch folgendes Beispiel:
Blogs können in Blog-Kategorien eingeordnet werden (oder meinet wegen auch mit Tags versehen). Dann soll es Moderatoren geben, die einer oder mehreren Kategorien zugeordnet werden. Und innerhalb ihrer Kategorie dürfen die Moderatoren dann z.B. Blog-Einträge bearbeiten, aber keine neuen erstellen.

Angefangen habe ich mit CanCan. Schön einfach zu bedienen und mit dieser kleinen Anleitung auch sehr flexibel: http://eveloverails.wordpress.com/2011/04/02/183/
Dann hab ich mich nochmal bei acl9 umgeschaut, das kann scheinbar(!?) alles, aber ich steig nicht durch, wie ich damit mein System aufbauen könnte. Aber ich bin mir auch nicht 100% sicher, ob es wirklich alles kann.


Was ich nun brauche:
- Eine Daten(bank)-Struktur mit der das alles möglich ist. Natürlich möglichst schlank und performant ;)
( - Ein Userinterface, das die Konfiguration möglichst einfach und übersichtlich macht)


Mir ist klar, dass man Teile davon einfach im Rails Code machen könnte, aber der eigentliche Sinn hinter dem Ganzen ist, dass ich (und bestimmt viele andere) endlich ein System haben wollen, mit dem sie die komplette Rechte-Verwaltung bis ins Detail im Griff haben. Also der übliche Rails Way: Gem einbinden, 2-3 Optionen anpassen und glücklich sein ;)

Ich bin für jeden Hinweis, Tipp oder Gegenvorschlag dankbar.


Grüße,
benneq
benneq
 
Beiträge: 1
Registriert: 21.03.2012, 23:17

Zurück zu Planung

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron