2010-12-14 3 views
0

Я хотел бы ограничить область пользователей, после аутентификации, конкретному пространству имен. Но они будут динамичными (т. Е. Не именованным маршрутом). Пример:Devise current_user vs user_session

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

или, возможно, просто:

/rails/ 
...or... 
/

если мы знаем их «команда», то не может, что-то можно предположить в маршрутизации?

Как лучше всего установить и обработать этот безопасно? Должен ли я хранить имя команды в user_session? Или запросите current_user для своей группы и убедитесь, что он соответствует их известной группе (группам) в файле before_filter?

Как насчет маршрутов? в основном прославленные идентификаторы, возможно, постоянная ссылка? dunno «Rails way?»

btw- Я знаю права на самообслуживание как CanCan и decl_auth, но стараюсь избегать их сложности, если это возможно, так как я сортирую newb, если это уже не было достаточно очевидным.

ответ

2

Я знаю драгоценных камней авторизации, как канкан и decl_auth, но пытается избежать их сложности, если это возможно

Вы гораздо лучше взять время, чтобы узнать об одном (или другой, или оба) этих драгоценных камней, чем пытаться опрокинуть свое собственное решение, ИМО. В конечном счете, вы столкнетесь с осложнениями по мере изменения ваших требований и без хорошей основы, лежащей в основе вашего подхода, проблемы просто должны произойти.

+1

Kinda, чего я боялся ... Я действительно просто ищу * легкий способ предотвратить изменение пользователями (или просмотр данных) любых данных других команд. То, что я вижу или, по крайней мере, разбираюсь в самообслуживаниях, - это то, что они кажутся * более ориентированными на конкретные * роли * (администратор, пользователь, модератор и т. Д.) И не столько на доступ, либо на * собственность *. Принимаю неверное предположение? Если так, возможно, вы могли бы порекомендовать один из драгоценных камней ... – Meltemi

+0

С cancan все о способности. «Я могу: обновить этот объект». Как вы реализуете эту способность зависит от вас –

+0

Я использовал 'declarative_authorization'. CanCan популярен в наши дни и, по общему мнению, прост в использовании - я бы начал с этого. – zetetic