2015-09-02 2 views
0

Мы изучаем драгоценный камень protector для обеспечения уровня уровня атрибута. Я хотел бы автоматически ограничивать все модели текущим пользователем по умолчанию, поэтому вам нужно явно ограничить его, а не наоборот. Так что ...По умолчанию ограничение для текущего пользователя

Article.find(3) # Is actually eq to Article.restrict!(current_user).find(3) 

Но найти его немного сложно реализовать, не обертывая/проксируя модель. Интересно, кто-нибудь это сделал или имеет представление о том, как реализовать этот тип функциональности.

ответ

0

protector documentation От:

Protector знает ассоциаций. Все ассоциации, полученные из ограниченного экземпляра, автоматически будут ограничены одним и тем же контекстом . Поэтому вам не нужно делать ничего особенного - это уважать соответствующую области действия из коробки

Вам нужно просто ограничить текущую User себя.

+0

Спасибо, но это не связано с ограничением ассоциаций после ограничения запроса или объекта. На самом деле это связано с тем, что вы меняете шаблон из явно ограничивающего (Article.restrict! (Current_user)) явно запрещенного, так что все запросы и модели автоматически ограничиваются текущим пользователем и для запроса за пределами текущего пользователя вам нужно будет ограничить (например: Article.unrestrict! .all) – jadent

+0

Возможно, 'current_user.articles'? – asiniy

+0

Отрицательный. Речь идет не о том, чтобы использовать текущую функциональность. Это лучший способ добавить новые функции к протектору при создании новой модели, которая автоматически ограничена. – jadent