1

特定のユーザーがrails_adminで自分のコンテンツのみを表示できるように制限する方法はありますか?

基本的に、たとえば地理的な区分内にスカウトリーダーのグループがいたとすると、私は多くのリーダーを持ち、彼らが作成したアイテムのみを表示できるようにしたいと思います。

それらにジオIDを割り当ててから、それを追加して考案する必要がありますか?

4

1 に答える 1

3

私は通常、これを行うためにCanCanを使用します。関連するユーザーが現在のユーザーであるかどうかのチェックを追加できます。

Rails 管理者 (ability.rb) の CanCan 構成の例。詳細な例については、 CanCan の rails_admin wiki を参照してください。

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
于 2011-12-08T10:16:46.310 に答える