【问题标题】:rails declarative authorization, permit all actions for controller?rails声明性授权,允许控制器的所有操作?
【发布时间】:2010-12-26 20:27:32
【问题描述】:

使用 Rails 的 delcarative_authorization gem,是否有允许角色访问所有控制器操作的快捷方式?

privileges do
  # default privilege hierarchies to facilitate RESTful Rails apps
  privilege :manage, :includes => [:create, :read, :update, :delete]
end

还不够,因为我的控制器中有更多的控制方法,而不仅仅是 CRUD。

类似:

  role :foo do
    has_permission_on :bar, :to =>[:all]
  end

会很完美,但我在文档中找不到。

【问题讨论】:

    标签: ruby-on-rails declarative-authorization


    【解决方案1】:

    我认为没有简单的方法存在。 This thread 讨论了一种可能的方法:检查“主”角色并完全绕过过滤。

    【讨论】:

      【解决方案2】:

      我使用这样的东西:

      privileges do
        # default privilege hierarchies to facilitate RESTful Rails apps
        privilege :manage, :includes => [:create, :read, :update, :delete]
        method_names =  Bar.action_methods.to_a
        meths = method_names - %w{create read update delete}
        privilege :all_others, :includes => meths.map{|m| m.to_sym}
      end
      
      role :foo do
        has_permission_on :bar, :to =>[:manage,:all_others]
      end
      

      虽然类似:

      privileges do
        # default privilege hierarchies to facilitate RESTful Rails apps
        privilege :manage, :includes => [:create, :read, :update, :delete]
        privilege :all, :includes => Bar.action_methods
      end
      
      role :foo do
        has_permission_on :bar, :to =>[:all]
      end
      

      可能更适合您的要求

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多