Poweradmin\Domain\Service\User
Classes
What a create-user request asks for, typed and independent of the wire format. The controllers build it from their own field names; the service hands it on to the repository with the password in its stored form.
Turns a submitted list of group references into distinct group entities
The last-super-admin rule for writes that take super admin away from users without touching their account: template contents, group membership, group deletion and a group's template. Each one decides and writes in one transaction holding the super admin rows, so two concurrent changes cannot both pass.
What a partial user update asks for: every field is null when the request left it alone. The controllers build it from their own field names; the service hands it on to the repository with the password in its stored form.
Decides whether a user must accept the current user-agreement version and records acceptances.
Domain service for user management operations
Reads and writes per-user preferences with a request cache and config-derived defaults.
Shapes raw user rows into the read format the API exposes
Resolves the timezone to display for a user: their preference, then misc.timezone, then UTC.