4

私の Rails アプリは、いくつかの Web サービスのフロントエンドです。私は自分の User モデルを永続化します。それだけです。認証に Devise を使用して、Web アプリに承認を追加する必要があります。CanCan と acl9 は主に ActiveRecord モデルのインスタンスで動作するようです。CanCan または acl9 はまだ私のニーズに合っていますか? 私の状況でこれらのライブラリのいずれかを使用するためのヒントはありますか?

インスタンスではなくアクションで機能するものを探す必要がありますか?

また、これらはどちらも役割ベースのシステムであり、権限ベースのシステムを使用することを考えています。彼らはまだぴったりですか?

4

2 に答える 2

1

私は話すことができませんacl9。ただし、cancanウィキは、「[モデル] アダプターが提供されていない場合は、独自の [モデル] アダプターを簡単に作成できる」と主張しています。 https://github.com/ryanb/cancan/wiki/Model-Adapter つまり、ActiveRecord を使用していなくても、cancan を使用できる可能性があります。

繰り返しになりますが、役割を持つ予定がない場合、cancan の能力定義は少し冗長に見えるかもしれません。たとえば、次のようになります。

class Ability
  include CanCan::Ability

  def initialize(user)
    user ||= User.new # guest user (not logged in)

    can :create, Widget if user.has_permission(:create_widgets)
    can :delete, Widget if user.has_permission(:delete_widgets)
    can :herp, Derp if user.has_permission(:herp_derp)
  end
end

cancan をコントローラー アクションの承認方法だけに使用できれば素晴らしいのですが、それが可能かどうかはわかりません。幸運を。

于 2012-02-13T06:56:00.623 に答える