Spreeでいくつかのカスタムロール(たとえば、ロール'client')を指定し、このロールの管理セクションにアクセスするためのアクセス許可を拡張しようとしています。
このユーザーは、そのユーザーが作成した製品にのみアクセスできます。コンセプトは、ロール「クライアント」を持つユーザーが製品と他の特定のモデルのみを管理できるようにすることです。
まず、CanCanプラグインを追加し、role_ability.rbでRoleAbilityクラスを定義しました。
この投稿をフォローするだけです:Spree Custom RolesPermissions
class RoleAbility
include CanCan::Ability
def initialize(user)
user ||= User.new
if user.has_role? 'admin'
can :manage, :all
elsif user.has_role? 'client_admin'
can :read, Product
can :admin, Product
end
end
end
これを初期化子に追加しました:config / initializers / spree.rb
Ability.register_ability(RetailerAbility)
また、admin_products_controller_decorator.rb:app/controllersadmin_products_controller_decorator.rbを拡張しました
Admin::ProductsController.class_eval do
def authorize_admin
authorize! :admin, Product
authorize! params[:action].to_sym, Product
end
end
しかし、「認証の失敗」というフラッシュメッセージが表示されます
運を見つけようとして、私は次のリンクを参照しました
Spreeロールをカスタマイズするためのgithubの要点:https ://gist.github.com/1277326
これが私が直面している同様の問題です:http://groups.google.com/group/spree-user/browse_thread/thread/1e819e10410d03c5/23b269e09c7ed47e
無駄なすべての努力...
高く評価されているポインタはありますか?
前もって感謝します。