したがって、製品コントローラーの上部に次を配置した後:
authorize_actions_for(Product)
...そしてこれを私のProduct.rbの一番上に:
resourcify
include Authority::Abilities
...そしてこれを私の User.rb の一番上に
rolify
include Authority::UserAbilities
application_authorizer.rb から、このルールに従うことができました。
def self.default(adjective, user)
user.has_role? :admin
end
言い換えれば、管理者ユーザーだけが何らかの方法で製品に関与できます。
しかし、次のようなproduct_authorizer.rbを作成すると
class ProductAuthorizer < ApplicationAuthorizer
def self.creatable_by?(user)
user.has_role? :admin
end
def self.updatable_by?(user)
user.has_role? :admin
end
def self.deletable_by?(user)
user.has_role? :admin
end
end
私はルールが守られているのを見ていませんでした。管理者以外のユーザーがまだ製品の表示アクションにアクセスできないことがわかりました。上記の場合、これは許可されるべきではありませんか?
これをProduct.rbに追加してみました:
self.authorizer_name = 'StyleAuthorizer'
app_app.rb のメインルールもコメントアウトしてみました
#def self.default(adjective, user)
# user.has_role? :admin
#end
...しかし、まだ栄光はありません