Petition: link student user_account on creation / first login; clerk endpoints by petition
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 38/100
Piste de recherche
Start with the migration and schema patterns in issues #138 and #141, then read api/security.py where first-login Employee creation is handled. Trace petition creation and both clerk routes named in the issue, and add integration tests for linking at creation and first login, preserving existing links, and resolving both endpoints without username lookups. Done means the schema, linking paths, routes, and acceptance tests all match the stated behavior.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Context
Petitions identify the student only by student_username (the supervisor only knows the username, and the student may not have an account yet). Usernames are fine for sending mail but not for identity: the planned account fusion maps several usernames of one human to one user. Clerk endpoints currently resolve students by username.
Decision
- Add
Petition.student_user_account: nullableuuid, FK →employee.user_accountwithON UPDATE CASCADE(same pattern as #138 / #141) - On petition creation: if an
Employeewithstudent_usernameexists, set it immediately - On first login (branch in
api/security.pywhere the Employee is created):UPDATE petition SET student_user_account = :sub WHERE student_username = :username AND student_user_account IS NULL - Username is used only once as the binding key; afterwards identity is
user_account
Tasks
- Migration + schema; backfill existing petitions from
employee.username - Linking on petition creation and on first login
-
GET /clerk/petitions/{petition_id}/documents(from #138): resolve viapetition.student_user_accountinstead of the username join (contract unchanged) - Replace
GET /clerk/prev_employments/petition/{petition_id}withGET /clerk/petitions/{petition_id}/prev_employments, resolved viapetition.student_user_account(breaking change for the frontend; remove the old route)
Acceptance criteria (integration tests)
- Petition for an existing student is linked at creation
- Petition for an unknown student is linked on the student's first login
- Already-linked petitions are not overwritten
- Both clerk endpoints work without any username lookup
Related: #138, #141
- Langage dominant
- Python
- Étoiles
- 0
- Forks
- 0
- Merge moyen
- 39 min
- PR mergées (30 j)
- 10
Préparer son environnement
- Fournit un Dockerfile ou un fichier Docker Compose
- Aucun modèle de pull request
- Aucun 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 ClockGU/clockwork-backend
-
Add alembic upgrade predeployOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
ClockGU/clockwork-backend#169 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 20/100
ClockGU/clockwork-backend#165 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 20/100
ClockGU/clockwork-backend#164 ·
Les mainteneurs répondent en général sous 1 jour
-
[#160] Refactor EmployeeManagerOuverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 20/100
ClockGU/clockwork-backend#163 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
ClockGU/clockwork-backend#162 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de ClockGU/clockwork-backend
Issues similaires
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
BCDA-APS/polar-bits#93 ·
-
infer_audio_type only recognises one MPEG Layer III frame header, so most MP3 files are rejectedPeut-être pris @Steve-20-ai l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
[BUG] - ssh_config `Match tagged` statement always appliesPeut-être pris @AtharvRG l’a pris aujourd’hui. OuverteBug
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
paramiko/paramiko#2715 · 1 commentaire ·
Les mainteneurs répondent en général sous 9 jours
-
auto-rejected intake mcp-intake needs-salvage priority:high type:feature
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
Ikalus1988/MisakaNet#4221 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
Les mainteneurs répondent en général sous 1 jour