J'essaie d'utiliser cancancan pour l'autorisation. Lorsque je suis un utilisateur 'group_creator' autorisé, l'accès aux groupes/new est toujours refusé.cancan :: accès refusé en utilisant concevoir et rolify
Les rôles sont-ils fonctionnels et has_role? des travaux de rolify. Donc, je pense que le problème vient avec Cancancan ou peut-être concevoir.
Ability.rb
def initialize(user)
user ||= User.new # guest user (not logged in)
alias_action :create, :read, :update, :destroy, to: :crud
if user.has_role? :group_creator
can :create, Group
elsif user.has_role?(:creator, Group)
can :manage, Group, owner_id: user.id
elsif user.has_role?(:admin, Group)
can :crud, Group, :id => Group.with_role(:admin, user).pluck(:id)
else
can :read, Group
end
end
de GroupsController.rb pertinentes
class GroupsController < ApplicationController
before_action :authenticate_user!
load_and_authorize_resource
def index
@groups = Group.all # Can be deleted due to cancancan?
end
def new
@group = Group.new # Can also be deleted due to cancancan...
end
end
J'ai essayé le débogage dans la console avec:
user=User.last
user.has_role? :group_creator # returns true
group=Group.last
ability=Ability.new(user)
ability.can?(:create, Group) # returns false
ability.can?(:create, group) # returns false