ruby on rails - Cancan: trying to restrict access to Controller with no Model of the same name -
i have foocontroller
no model foo - it's gateway third-party service. in foocontroller
, resource being accessed do_bar
method baz
. can manage else's baz
, through foocontroller
, want restrict management own.
in ability.rb, i've written following initialize
method:
can :manage, :foo
but want write (of course doesn't work):
can :manage, :foo @baz.user == user end
foocontroller:
load_resource :baz, find_by: :user_data, parent: false def do_bar @baz = baz.find(params[:user_data]) #necessary otherwise @baz nil authorize! :manage, :foo #other stuff end
i want make @baz instance - being manipulated in foocontroller
, must owned user them able manage it.
how can this?
1.define ability baz.
can :manage, baz, :user => user
2.you can authorize manually in action.
#load_resource :baz, find_by: :user_data, parent: false def do_bar @baz = baz.find(params[:user_data]) #necessary otherwise @baz nil authorize! :manage, @baz #other stuff end
Comments
Post a Comment