hostolab/covidliste

Investiguer le bug de connexion pour les support_members

colinemarie opened this issue · 4 comments

Contexte / Problème

Il y a un bug au niveau des rôles empêchant un support_memberde rejoindre l'espace admin/bénévoles lorsqu'il est loggué

Proposition

A investiguer

Priorité (Requis)

Ajouter un label Priorité

  • P2: Moyennement urgent, à résoudre en 4 jours

Hello @colinemarie !

J'ai regardé ça rapidement ce matin et je suis surpris par quelque chose. Dans les routes, on filtre les admins par leur rôle précis, par exemple:

# config/routes.rb

authenticate :user, lambda { |u| u.has_role?(:support_member) } do
  # Support
  resources :users, only: [:index, :destroy] do
    post :resend_confirmation, on: :member
  end
end

Par contre, dans le controlleur et la policy associée, on utilise pas le même rôle ensuite:

# app/controllers/admin/users_controller.rb

def index
  @user = policy_scope(User).find_or_initialize_by(email: params.dig(:user, :email))
  # ...
end
# app/policies/admin/user_policy.rb

class Scope < Scope
  def resolve
    # Pourquoi on utilise plus le rôle :support_member ici ?
    raise Pundit::NotAuthorizedError unless user.has_role?(:admin) 

    scope.all
  end
end

Je veux bien travailler sur cette issue si jamais il n'y a personne dessus ! Ca me permettra de découvrir un peu la plateforme !

Avec grand plaisir :)
Oui, il y a du avoir du cafouillage dans la gestion des rôles qui ont été ajoutés au fur et à mesure. Si en explorant, tu as des questions précises sur les rôles et la partie support @carsso devrait être la bonne personne 😊

Normalement les rôles héritent les uns des autres. Il faudrait mettre pundit sur le rôle bénévole qui est le plus bas de la liste

Ca roule ! Je fais une PR dans la journée ! :)