Dynamische Rollenverwaltung

servus zusammen,

mit Interesse habe ich Eure Unterhaltung bezüglich
des rails-authorization-plugin verfolgt. Persöhnlich
setze ich restful-authentication im Zusammenspiel mit
role_requirement[1] ein. Ist einfach und funktioniert
hier problemlos.

Ich schreibe deshalb, weil mich an all den Plugins eines
ziemlich stört: sie sind alle zu statisch. Will meinen,
man muss (meistens in den betreffenden Controllern) die
Zugriffsregeln festlegen. Etwa der Form:
require_role “admin”, :except => :index

Mit anderen Worten: es steht schwarz auf weiß im Programm
und kann zur Laufzeit nicht mehr geändert werden:
jedwede Änderung hier zieht einen Neustart der Applikation
nach sich und das ist es was mich stört.

Flexibler wäre es doch, wenn beim Starten von Rails alle
Controller und deren öffentliche Aktionen[2] in einer
Struktur im Speicher vorgehalten werden. Über das Webfrontend
kann dann der Admin die Aktionen der Controller bequem mit
den Benutzerrollen verknüpfen - welche in der DB landen.

Bei einem nun erfolgenden Request wird über den ohnehin
vorhandenen before_filter in die DB geschaut und die
require_role Bedingung mit den zugehörigen Aktionen zur
Laufzeit in das Plugin “injiziert” - wenn ich so sagen darf.

Die Logik des before_filters lagert man in ein eigenes Plugin
aus und man folgt dem Prinzip DRY, da die ewigen Wiederholungen
aus den Controllern verschwinden.

Probleme sehe ich beim Cachen - müsste man halt testen,
und natürlich entstehen zusätzliche Datenbankzugriffe.
Aber wenn meine Denke richtig ist, kann man so völlig
flexibel an den Rechten der Benutzer schrauben, ohne die
Applikation neu zu starten.

Abschließende Frage: geht das überhaupt so und gibts das
vielleicht schon?

Gruß
Torsten

[1] GitHub - timcharper/role_requirement: Simple role based security for restful_authentication I am no longer involved in this project. If you are interested in becoming the new maintainer and making it your own, please contact me. I will no longer be responding to bug reports or questions. Thanks, Tim
[2] über ActionController::Routing::Routes.routes auslesbar

Hi Torsten,

Wenn du’s so flexibel brauchst dann schau dir mal goldberg an:

http://github.com/urbanus/goldberg/

ciao, tom

Am 06.02.2009 um 11:04 schrieb Torsten F.:

nach sich und das ist es was mich stört.


Thomas R. “TomK32” Koll <> http://ananasblau.com
just a geek trying to change the world
TomK32 (Thomas R. Koll) · GitHub

Thomas R. Koll schrieb:

Hi Torsten,

Wenn du’s so flexibel brauchst dann schau dir mal goldberg an:
http://github.com/urbanus/goldberg/

hmmm, würd’ ich gern. Die Homepage sagt: Rails application failed to
start properly - seit einigen Stunden. Und ich möchte erstmal wissen,
worum es bei dem Projekt überhaupt geht, bevor ich mich in den Quell-
code vertiefe… :slight_smile:

torsten

Hi,

Am 06.02.2009 um 21:26 schrieb Torsten F.:

Thomas R. Koll schrieb:

Wenn du’s so flexibel brauchst dann schau dir mal goldberg an:
http://github.com/urbanus/goldberg/

hmmm, würd’ ich gern. Die Homepage sagt: Rails application failed to
start properly - seit einigen Stunden. Und ich möchte erstmal wissen,
worum es bei dem Projekt überhaupt geht, bevor ich mich in den Quell-
code vertiefe… :slight_smile:

web.archive.org
Aber die Seite war nie wirklich gut oder hilfreich.

Falls der code irgendwo Probleme macht oder bugs auftreten lass
es mich wissen und ich helf beim beheben der Fehler. Meine
eigenen goldberg Installation laufen mit 2.2.2

ciao, tom


Thomas R. “TomK32” Koll || http://tomk32.de || http://ananasblau.com
just a geek trying to change the world
Skype: TomK32 || Mail: [email protected]
About Thomas R. Koll | Flickr

Thomas R. Koll schrieb:

code vertiefe… :slight_smile:

web.archive.org
Aber die Seite war nie wirklich gut oder hilfreich.

Falls der code irgendwo Probleme macht oder bugs auftreten lass
es mich wissen und ich helf beim beheben der Fehler. Meine
eigenen goldberg Installation laufen mit 2.2.2

Danke!