Мне интересно, как лучше структурировать аутентификацию / авторизацию в моем приложении. Я хочу иметь
много учетных записей компаний, возможно, с использованием поддоменов
учетная запись имеет много пользователей
и пользователи могут получить доступ только к тем записям, которые были созданы самим собой или другим пользователем с той же учетной записью.
Проведенное мною исследование предлагает множество смешанных и подходящих идей для сочетания devise / cancan / authlogic необычным и замечательным образом, но я пока не нашел ничего, что показало бы мне лучший способ ограничить доступ пользователей к данным. в той же модели.
Так, например:
Счет 1: Евразия
Пользователь 1: Боб
Пользователь 2: Джим
Счет 2: Eastasia
Пользователь 1: Дейв
Пользователь 2: Алан
Isbn 1: account_id равен 1
Isbn 2: account_id равен 2
Как мне удостовериться, что Боб не может получить доступ к Isbn 2 или нет?
/// обновление
Конечно, теперь я написал это, мой google fu включился, и я нашел readme от RyanB для CanCan 2.0 , который кажется идеальным:
> Ресурсы
Что делать, если вам нужно изменить авторизацию на основе модели
атрибуты? Вы можете сделать это, передав хэш условий как последний
аргумент может. Например, если вы хотите разрешить доступ только одному
для проектов, которыми он владеет, вы можете установить опцию: user_id.