Files
bookhoard/docs/admin/users.md
T
John O'Keefe 607e5a1708 docs(admin): settings page — every knob, what it does, and its range
The ninth page and the core of the owner's admin-docs brief: all 29
registry settings plus Base URL, documented setting-by-setting to the
admin tier — key, type, default, valid range, live-vs-restart, and
prose for what it does and what it means when that's confusing
(extractor-version as the gradual backfill lever vs. force rescan;
password rules apply at next set, never retroactively; tombstone TTL
as offline-device protection; rate limits as throttling behavior;
worker pool sizing honesty for small servers). Grouped exactly like
the page renders them, with the three save paths explained up front.
Ranges/defaults/flags from SettingDefaults; exclusion of the three
dedicated-UI keys from the tunables verified in the page handler.
Backfills the Settings links into dashboard.md and users.md now that
the target exists. Glossary gains Save Settings, Save Scan Settings,
both Tunable bucket headings, and Default Timezone.
2026-11-02 14:16:04 -05:00

66 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- Ground truth: templates/admin_users.templ (create form, user cards,
last-admin guards), templates/profile_form.templ + profile_modal.templ
(admin edit fields), internal/router/auth.go (admin user endpoints),
internal/router/frontend.go (profile-modal route), user delete cascade
(reading data is owned by the account and goes with it). Re-verify
against these when the page changes. -->
# Users
User Management is where accounts are created, roles are assigned, and
accounts are removed. Changes here are immediate — there is no approval
flow.
## Creating an account
**+ Create User** opens the creation form (it stays hidden until clicked,
so the page doesn't shout account creation at you — and so admins can
still create accounts even when public self-registration is switched off
in [Settings](settings.md) → Public Registration).
Fields: **Username** (3–50 characters), **Email**, **Password** plus a
confirm, optional **First name** / **Last name**, and a **Role** of User
or Admin. The **Password Requirements** list is generated from the
password rules currently configured in Settings — the same rules users
face when changing their own passwords — and the **Create User** button
stays disabled until everything validates.
## The user cards
Every account renders as a card: username (with a **You** badge on your
own), email, the creation date shown in your timezone, and the controls:
### Role
A dropdown — **User** or **Admin** — that applies the moment you change
it. One guard exists: the **last admin cannot be demoted** (the dropdown
disables itself with that explanation while only one admin exists).
Admins see and use the entire Administration section — libraries,
scans, settings, this page.
### Edit
Opens an **Edit User Profile** modal with the same fields the user
controls on their own profile — username, email, first/last name,
**Theme**, **Default Playback Speed**, **Resume Rewind** — plus the Role
dropdown, and a **Change Password** section. The admin version doesn't
ask for the user's current password (only the user's own profile does).
### Delete
Removes the account permanently — and with it everything the account
owns: devices, sessions, and reading data (progress, annotations,
collections). The confirm dialog makes the irreversibility explicit.
Same last-admin guard as the role dropdown: the final admin cannot be
deleted.
## Roles, briefly
- **User** — browses, reads, listens, syncs devices; sees only the
libraries visible to them (visibility is set per-library on the
[Libraries](libraries.md) page).
- **Admin** — everything a user has, plus the Administration section:
libraries and scanning, users, system settings, hash conflicts,
podcasts maintenance.