Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Petition: link student user_account on creation / first login; clerk endpoints by petition

Aberta
#142 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
38/100
Tipo de issue
Funcionalidade
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
python, sql
Domínio
api, backend, database

Direção de pesquisa

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.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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: nullable uuid, FK → employee.user_account with ON UPDATE CASCADE (same pattern as #138 / #141)
  • On petition creation: if an Employee with student_username exists, set it immediately
  • On first login (branch in api/security.py where 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 via petition.student_user_account instead of the username join (contract unchanged)
  • Replace GET /clerk/prev_employments/petition/{petition_id} with GET /clerk/petitions/{petition_id}/prev_employments, resolved via petition.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

Linguagem predominante
Python
Estrelas
0
Forks
0
Merge médio
39min
PRs com merge (30d)
10

Preparar o ambiente

  • Inclui um Dockerfile ou arquivo Docker Compose
  • Sem modelo de pull request
  • Sem guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de ClockGU/clockwork-backend

Todas as issues de ClockGU/clockwork-backend

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.