# Admin overview

The administration panel lives at the configured administrator path. It defaults to `/admin`, and an operator may change it (`/w-admin`, for example) **without renaming the physical directory** — the path is a setting, not a folder.

Every admin URL, form action, asset and redirect is generated through the admin URL helper. If you are extending Quaeriva, never hard-code `/admin`.

## Access

Only users with the `admin` role reach the panel. Moderators reach the moderation surfaces only. Requests are checked on the server for every action, not only when rendering a menu.

All state-changing actions require a valid CSRF token. A missing or stale token is rejected with an error, never silently ignored.

## The pages

### Overview

An action dashboard, not a vanity board. It surfaces:

- **Needs attention** — pending moderation queue size, open reports, unanswered questions, pending database migrations, storage/session/log warnings.
- **Recent activity** — newest questions, answers and topics.
- **System health** — database and schema state, required PHP extensions, mail and Telegram configuration state, sitemap availability, storage permissions, version and build manifest.

Every warning links to the page that fixes it.

### Content

| Page | What it manages |
|---|---|
| Questions | List, filter, publish, hide, delete; set or unset the accepted answer |
| Answers | Publish, hide, delete; accept |
| Comments | Publish, hide, delete |
| Topics | Publish, pin, lock, delete discussion topics |
| Categories | Create, rename, reparent, set SEO title/description/index policy |
| Tags | Create, rename, merge, manage synonyms, set SEO fields |
| Editorial | Create editorial personas; publish or import seed content |

See [Questions and answers](QUESTIONS-ANSWERS.md), [Topics and discussions](TOPICS-DISCUSSIONS.md), [Categories and tags](CATEGORIES-TAGS.md), [Editorial seed content](EDITORIAL-SEED.md).

### Community

| Page | What it manages |
|---|---|
| Users | Roles, status (active/suspended/banned), account type, trust level |
| Reports | The report queue with moderator notes and resolutions |
| Messages | Contact-form submissions |
| Notifications | Admin notification inbox |

See [Users and roles](USERS-ROLES.md) and [Moderation](MODERATION.md).

### Appearance

| Tab | What it manages |
|---|---|
| Themes | The active theme — the page structure, not just its colours |
| Branding | Site identity: name, display mode, logo, favicon, mobile navigation |
| Palette | Semantic colour tokens |
| Typography | Font stacks, sizes, weights |
| Layout | Home / question / topic / header presets, density, sidebar position |
| Profiles | Saved theme profiles: create, apply, duplicate, preview, export, import, roll back |
| CSS | Custom CSS (privileged) |
| Menus | Managed navigation |
| Widgets | Nine page regions and their widget contents |
| Package | Theme package import/export |

See [Themes overview](../04-themes/THEMES-OVERVIEW.md).

### System

| Page | What it manages |
|---|---|
| Settings | General, Mail, SEO, Community, Membership, Maintenance |
| Languages | Registered languages, defaults, translation overrides |
| Ads | Placements, creatives, weights, scheduling, targeting |
| Custom code | Head/body snippets scoped to page types and audiences |
| Plugins | Discovery, activation, health status |
| Audit | The audit log of administrative actions |
| System | Diagnostics, database upgrade, release manifest |

## Conventions across every list page

- **Pagination and filters** on every list; no page loads an unbounded result set.
- **Destructive actions confirm** before running.
- **Every action is audited** — who did what, when, to which record.
- **Errors are translated.** A failure shows a message in the admin's language, not an exception.

## Safety rules that the panel enforces

- Editorial and system accounts cannot sign in, regardless of the stored password hash.
- Plugins and themes are installed over the filesystem only. Nothing executable is uploaded through the browser.
- Custom CSS and custom code are privileged, admin-only surfaces and are validated before they are stored.
- Secrets (SMTP password, Telegram token, Turnstile secret) are never echoed back into the page or written to logs.
