bnv-manager-v2: accept_invite creates the Mailcow domain admin before the commit
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 82/100
Línea de trabajo
Empieza en services/bnv-manager-v2/src/http/handler_frontend/invites/handler_common.rs en accept_invite, donde el tokio::spawn que llama a create_domain_admin se encuentra antes de tx.commit(). Lee set_password y reset_password en el mismo servicio para ver cómo recopilan los datos dentro de la transacción y llaman a Mailcow::global() después del commit. Está terminado cuando la llamada a Mailcow se ejecuta solo después de que tx.commit().await? tenga éxito y la ruta de los miembros del club no cambia.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
accept_invite (services/bnv-manager-v2/src/http/handler_frontend/invites/handler_common.rs) spawns the task that creates the domain admin in Mailcow (create_domain_admin) while the transaction is still open. tx.commit() only runs after that.
If the commit fails (e.g. connection drop), the account and the accepted invite roll back, but the domain admin in Mailcow stays. Accepting the invite again then fails on the existing Mailcow user.
Expected
The Mailcow side effect only runs after a successful commit. set_password and reset_password in the same service already do this: gather what is needed inside the transaction, call Mailcow::global() after tx.commit().
Acceptance criteria
- In
accept_invite,tokio::spawnwithcreate_domain_adminonly runs aftertx.commit().await? - A failed commit leaves no trace in Mailcow
- Club-member invites (without a Mailcow call) behave unchanged
- Lenguaje dominante
- TypeScript
- Estrellas
- 0
- Forks
- 1
- Merge medio
- 9 h 39 min
- PR fusionados (30 d)
- 144
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de myOmikron/code
-
wayfinder:task
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
Los mantenedores suelen responder en 1 día
-
wayfinder:task
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
myOmikron/code#102 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
ready-for-agent
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
Los mantenedores suelen responder en 1 día
-
ready-for-agent
Dificultad 4/5 3-5 días Aptitud para principiantes 39/100
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
Los mantenedores suelen responder en 1 día
Todos los issues de myOmikron/code
Issues similares
-
Replace discontinued crypto-js in the themePosiblemente ocupada @aelmanaa la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
PaloAltoNetworks/docusaurus-openapi-docs#1689 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
solana-foundation/solana-web3.js#4015 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
formatSearchQuery drops the :present modifier, so `email:present=true` is sent as `email=true`Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día
-
documentation
Dificultad 1/5 1-3 horas Aptitud para principiantes 90/100
ivopogace/opencode-courier#422 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
chapel-lang/chapel-vscode#158 ·
Los mantenedores suelen responder en 1 día