87a272166b
Tests · Go / test (push) Successful in 1m59s
Add the operator-management page over *admin.Service (no new business logic).
- GET/POST /_gm/operators list + create operator
- POST /_gm/operators/{user}/disable|enable toggle access
- POST /_gm/operators/{user}/reset-password set a new password
Console depends on an OperatorAdmin interface (satisfied by *admin.Service) so
the page renders in tests without a database. Create POST is mounted on the
collection path; per-row disable/enable/reset are guarded by the CSRF middleware
and redirect back. Passwords are never logged.
Tests: list render, create (+ username/password assertions), username-taken
conflict, disable/enable, reset (+ password assertion), missing-password 400,
bad-CSRF 403, and unavailable 503.
Docs: backend/docs/admin-console.md page inventory extended.
15 lines
303 B
Go
15 lines
303 B
Go
package adminconsole
|
|
|
|
// OperatorRow is one line in the operators (admin accounts) table.
|
|
type OperatorRow struct {
|
|
Username string
|
|
CreatedAt string
|
|
LastUsedAt string
|
|
Disabled bool
|
|
}
|
|
|
|
// OperatorsData is the view model for the operators page.
|
|
type OperatorsData struct {
|
|
Items []OperatorRow
|
|
}
|