Turn a person without an account into an account (Stufe 27) #7

Merged
ollo2012 merged 2 commits from ollo2012/stufe-27-konto-umwandeln into main 2026-10-12 16:25:13 +00:00 AGit
Owner

Stufe 27 from PLANUNG.md.

  • In admin mode a person without an account can be turned into an account ("In Konto umwandeln": username, start password, optional e-mail, admin right, confirmation). Name and colour are kept, the note is dropped, the password must be changed at first login.
  • Her bookings, expenses, Kasse, repayments and group membership move to the account, each with a history entry "an übertragen"; the old person is hidden but kept for the history (migration 0011).
  • Expenses: only accounts can be chosen as payer or group member; already set persons stay valid.

Unit tests (367) and e2e (96) pass locally.

🤖 Generated with Claude Code

Stufe 27 from PLANUNG.md. - In admin mode a person without an account can be turned into an account ("In Konto umwandeln": username, start password, optional e-mail, admin right, confirmation). Name and colour are kept, the note is dropped, the password must be changed at first login. - Her bookings, expenses, Kasse, repayments and group membership move to the account, each with a history entry "an <Name> übertragen"; the old person is hidden but kept for the history (migration 0011). - Expenses: only accounts can be chosen as payer or group member; already set persons stay valid. Unit tests (367) and e2e (96) pass locally. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
"Bezahlt von" and the members of an expense group now offer active
users only. Persons without an account are rejected as new payers or
members; one already set stays valid (an old expense's payer, current
members of a group, which the group form keeps listing). In the balance
table such a person only appears while an old balance is open.

The expense specs use accounts instead of internal persons.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
feat(persons): turn a person without an account into an account
All checks were successful
web / gate (pull_request) Successful in 10s
web / release (pull_request) Has been skipped
969790f759
In admin mode the page of a person without an account offers "In
Konto umwandeln": username, start password, optional e-mail and the
admin right, then a confirmation. The new account keeps name and
colour (the note is dropped, the form says so) and must change its
password at first login.

Bookings for the person, her expenses, Kasse, repayments and group
membership move to the account in one transaction; each moved booking,
expense and repayment gets a "transfer" history entry ("an <Name>
übertragen"). The person stays for the history (migration 0011 adds
internal_person.converted_user_id) but is hidden from lists and
choices; her page redirects to the account.

createUser is split so the checks and hashing can run before the
transaction (newUserValues).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ollo2012/glashuette!7
No description provided.