Пользовательский контроль Rails_Admin - PullRequest
1 голос
/ 08 декабря 2011

Можно ли как-то ограничить определенных пользователей, чтобы они могли видеть только свой собственный контент в rails_admin?

По сути, скажем, что была группа лидеров-скаутов, например, в географическом подразделении, я хотел быУ меня много лидеров, и тогда они могут видеть только те предметы, которые они создали.

Нужно ли мне назначить им гео-идентификатор, а затем добавить его для разработки?

1 Ответ

3 голосов
/ 08 декабря 2011

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

Пример конфигурации CanCan для rails admin (Способность

class Ability
  include CanCan::Ability

  def initialize(user)
    if user
      can :access, :rails_admin
      if user.role? :employee
        can :read, [Model1, Model2, Model3]
        can :update, User, :id => user.id #employee can update own user details
      elsif user.role? :admin
        can :manage, :all
      end
    end
  end
end

И чтобы проверить роль ваших пользователей, добавьте / измените следующее в вашей модели пользователя

# Setup accessible (or protected) attributes for your model
  attr_accessible :email, :password, :password_confirmation, :remember_me, :role

  def role_enum
    %w[admin employee]
  end

 def role?(role)
   self.role == role.to_s
 end
...