2010-12-14 8 views
0

Ich möchte einen Benutzerbereich, einmal authentifiziert, auf einen bestimmten Namespace beschränken. Aber sie werden dynamisch sein (dh keine benannte Route). Beispiel:Devise current_user vs user_session

/rails/redteam/ 
/rails/blueteam/ 
/rails/greenteam/ 

oder vielleicht einfach:

/rails/ 
...or... 
/

wenn wir ihr 'Team' wissen dann nicht, dass irgendwie in der Routing angenommen werden könnte?

Wie kann man das am besten einrichten und dieses sicher handhaben? sollte ich den Team-Namen in user_session speichern? Oder fragen Sie den current_user nach ihrer Gruppe ab und verifizieren Sie, dass sie mit ihrer/ihren bekannten Gruppe (n) in einem before_filter übereinstimmt?

Was ist mit den Routen selbst? im Grunde verherrlichte IDs, vielleicht ein Art Permalink? Weiß nicht der "Rails Weg?"

btw- Ich bin bewusst, Autorisierung Edelsteine ​​wie CanCan und decl_auth aber versuchen, ihre Komplexität zu vermeiden, wenn möglich, wie ich bin sorta ein newb, wenn das nicht schon genug offensichtlich war.

Antwort

2

Ich bin mir dessen bewusst Genehmigung Edelsteine ​​wie CanCan und decl_auth aber versuchen, ihre Komplexität zu vermeiden, wenn möglich

Sie sind viel besser die Zeit nehmen, um einen (oder das andere zu lernen, oder beides) von diesen Edelsteinen, als zu versuchen, Ihre eigene Lösung zu rollen, IMO. Letztendlich werden Sie bei Änderungen Ihrer Anforderungen mit Komplikationen konfrontiert, und ohne einen guten Rahmen, der Ihrem Ansatz zugrunde liegt, werden Probleme einfach passieren.

+1

Irgendwie hatte ich Angst ... Ich bin wirklich nur auf der Suche nach einem * einfachen * Weg, um zu verhindern, dass Benutzer irgendwelche Daten anderer Teams ändern (oder anzeigen). Was ich sehe oder zumindest über Autorisierungs-Edelsteine ​​verstehe, ist, dass sie * eher auf spezifische * Rollen * (Admin, Benutzer, Moderator, etc.) ausgerichtet sind und nicht so sehr auf Zugang oder Besitz *. Mache ich eine falsche Annahme? Wenn ja, könntest du vielleicht eines der Edelsteine ​​empfehlen ... – Meltemi

+0

Bei Cancan dreht sich alles um Fähigkeit. "Bin ich in der Lage: dieses Objekt zu aktualisieren". Wie Sie diese Fähigkeit implementieren, liegt an Ihnen –

+0

Ich habe nur 'declarative_authorization' verwendet. CanCan ist heutzutage sehr beliebt und angeblich einfach zu benutzen - damit würde ich anfangen. – zetetic

Verwandte Themen