Я использовал cancan и знаю о декларативной авторизации, но, похоже, они не дают возможности ролям зависеть от пользовательских переменных.
Модели:
Домены (blah.qwe.com, wer.qwe.com, ert.qwe.com) - они нужны мне в одной БД и приложении.
Пользователи (могут иметь несколькороли)
Роли (каждая роль работает только в своей области; возможности доступны для редактирования)
...
Например, у меня есть пользователь, он владелец домена blah.qwe.com, но он простой пользователь на wer.qwe.ru, а на ert.qwe.com он забанен и вообще ничего не может сделать.
@ current_domain загружается в before_filter (методом current_domain) в контроллере приложения, а current_user загружается устройством devise. Каково решение, чтобы сделать авторизацию зависимой от запрашиваемого в данный момент ресурса (как в cancan), current_user и current_domain (и, возможно, с другими загруженными переменными before_filter)? Есть ли решение в cancan, или я должен изменить его или написать свойсобственная система авторизации?