2013-10-28 3 views
0

Я использую ruby ​​2.0.0p247 и rails 4. Мне нужно добавить before_filter в пользовательский контроллер моего приложения, чтобы проверить, принадлежат ли пользователи одной и той же группе до они вызывают методы для других пользователей, таких как (показать). Я не хочу использовать драгоценные камни в своем приложении. Любая помощь приветствуется .. СпасибоRuby on Rails: добавление before_filter для проверки того, что пользователи принадлежат к одной группе

ответ

1
before_filter :check_for_group, only: [:show] #or add the actions you want here 

затем на дне создать приватный метод, чтобы проверить, если 2 пользователи находятся в одной и той же группе

def check_for_group 
    user_getting_shown = User.find(params[:id]) 
    user_getting_shown.gorups.in?(current_user.groups) # => assuming you have a current_user method that retrives the user session. 
end 

Однако, если вам нужно много авторизации в приложении вместо использования before_filters вы можете создать только один в контроллере приложения, называемый авторизацией, а затем создать отдельный класс разрешений, из которого вы можете управлять всей логикой авторизации. Это намного проще проверить. У Ryan bates есть 2 замечательных скринкаста по этому вопросу, которые вы должны выписка

http://railscasts.com/episodes/385-authorization-from-scratch-part-1

http://railscasts.com/episodes/385-authorization-from-scratch-part-1

+0

Спасибо вам за ответ Brock90 – Oatmeal

 Смежные вопросы

  • Нет связанных вопросов^_^