Managing users and credits (admin)
How to create/edit users, reset passwords, and grant company credits from the platform-admin cockpit — including the platform-admin lock-out guard and the credit-transaction ledger.
# Managing users and credits (admin)
Platform-admin only, at **admin.contexta.uk**.
## Users
The **Users** page lists every user across all companies (search by email/name).
- **Create** — full name, email, password (≥ 8 chars), role, company. Email must be
unique; the password is bcrypt-hashed.
- **Edit** — change full name, role, or active state. You cannot edit your own
account here (use the personal account flow).
- **Disable** — toggling a user inactive is blocked for **platform-admin accounts**
(a disabled admin could lock everyone out of the cockpit).
- **Reset password** — sets a new bcrypt-hashed password (≥ 8 chars); you can't
reset your own here.
All of this runs through `core.admin_user_service` — one tested home for the
bcrypt + uniqueness + lock-out-guard logic.
## Credits
The **Credits** page shows each company's balance, markup multiplier, fair-use
flag, and monthly limit.
- **Grant credits** — add credits to a company. This upserts the company's
`CompanyCredits` row (creating one if needed) **and** writes a row to the
`CreditTransactions` ledger (type, amount, notes, who added it). The write runs
through `billing_service.admin_grant_credits` — the single owned credit-write
path, distinct from the Stripe purchase-completion path.
- **Fair use** — toggles the fair-use flag on a company's credit record.
Because every grant is logged to the ledger, credit changes are auditable.
Tags: grant credits, add credits, company credits, create user, edit user, reset password, user role, disable user, fair use, credit ledger, credit transactions