Помощь по базе данных, пытаясь получить функции от группы через пользователей - PullRequest
1 голос
/ 11 июля 2011

Мне нужно проверить, является ли ПОЛЬЗОВАТЕЛЬ частью группы, в которой есть функции, которые дают им доступ к странице управления пользователями. То, что у меня сейчас есть, это

def user_managment
      # If they are in group 1              AND user has function id 1 (user management)
      if current_user.group_ids.include?(1) && current_user.function_ids.include?(1)#&& group.function_ids.include?(1)
      flash[:error] = "You have access to user management!"
      else
        flash[:error] = "You have DO NOT access to user management!"
      end

      if current_user.group_ids.include?(1) && group_ids(1).function_ids.include?(1)
        flash[:error] = "Test"
      end
    end

Я не уверен, как проверить, если ониесть ли строка user management в таблице от userscontrollers, может кто-нибудь помочь?

1 Ответ

3 голосов
/ 11 июля 2011

То, о чем вы здесь говорите, это контроль доступа, пожалуйста, , пожалуйста, ПОЖАЛУЙСТА, , остановите то, что вы делаете, и посмотрите на один из множества отличных драгоценных камней авторизации / ACL1004 *.Например, используя acl9 , вы можете получить некоторый код, который будет гораздо более понятным и выразительным, например:

access_control do
  allow :manager, :of => User, :to => :user_management
end

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

...