Extract organiser grant/revoke diffing from Admin::WorkshopsController
Les mainteneurs répondent en général sous 1 jour
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 68/100
Piste de recherche
Read Admin::WorkshopsController and the existing app/services/ service objects to follow project conventions. Trace create and update, including assign_organisers_or_default and update_workshop_details, then run the existing admin workshop controller specs. Done means role changes behave identically for create/update, including the default-to-chapter-organisers path, and the controller no longer contains role-diffing logic.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Parent: #2938
Problem
Admin::WorkshopsController mutates Member roles directly from private controller methods, on both create (assign_organisers_or_default) and update (update_workshop_details):
def grant_organiser_access(organiser_ids = [])
organiser_ids.each { |id| Member.find(id).add_role(:organiser, @workshop) }
end
def revoke_organiser_access(organiser_ids)
(@workshop.organisers.pluck(:id).map(&:to_s) - organiser_ids).each do |id|
Member.find(id).revoke(:organiser, @workshop)
end
end
Diffing desired vs current organisers and mutating roles is application-layer orchestration, not HTTP coordination.
Proposed change
- Extract the diff + grant/revoke into a service object under
app/services/(follow the existing*_serviceconventions there; naming up to the implementer). - The controller calls it from
create/update; the default-to-chapter-organisers branch moves with it.
Acceptance
Admin::WorkshopsControllerno longer contains role-diffing logic.- Organiser membership changes identically after create/update, including the default-to-chapter-organisers path.
- Existing admin workshop controller specs pass.
- Langage dominant
- Ruby
- Étoiles
- 106
- Forks
- 208
- Merge moyen
- 18 h 3 min
- PR mergées (30 j)
- 74
Préparer son environnement
- Fournit un Dockerfile ou un fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de codebar/planner
-
DashboardQuery eager-loads workshop_host with :sponsors in one join (same host-loss trap as #2975)Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 1 jour
-
Dual Invitiation issuePeut-être pris @mroderick l’a pris il y a 8 jours. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 42/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 28/100
codebar/planner#3008 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de codebar/planner
Issues similaires
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 84/100
-
Ruby 4.0.9, 3.4.12, 3.3.13Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 67/100
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
TheOdinProject/curriculum#31487 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Bug: Assistant replies lose the space before numbers ("Oct7", "as of10-22-2026") with OpenAI modelsOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
we-promise/sure#4441 ·
Les mainteneurs répondent en général sous 1 jour