Commit Graph
11 Commits
Author SHA1 Message Date
Geoff MooreandClaude Sonnet 5 8946915bfe Add Users, media library, navigation menus from the scan, new-page wizard and deleted-page recovery
Users (Tools > Users)
- Everyone can update their display name, email and password; administrators can add,
  edit, invite (one-time link), block and delete accounts.
- Accounts in config.local.php stay locked to config (the main administrator); CMS
  accounts live in data/users.json. Sign-in is by login name.
- Roles are now editor and administrator (publisher is an alias of editor).
- Account protection: password hashes only (12-72 characters), administrator password
  confirmation for sensitive actions, rate-limited failures, hashed single-use invite
  tokens, self-lockout guards, sessions of blocked/deleted users end on the next request,
  every account event audited without secrets.
- dataDirectory can move data outside the web root; the dashboard recommends it.

Media library
- Upload images, documents, video and audio, sorted into four categories by extension.
- Extension allow-list; executables, scripts, HTML/SVG, archives, legacy and macro Office
  files refused; content sniffing; files containing code refused; PDFs with scripts refused;
  Office/OpenDocument packages inspected for macros and embedded objects.
- Media library button in the editor inserts an image, document link, video or audio.

Navigation menus, pages and interface
- The site scan detects primary/secondary navigation and seeds Navigation Menus; menus can be
  renamed, edited and deleted but not created by the CMS; a scan button finds new navigation.
- New page wizard (template, name, navigation group) in the Pages dialogue; new pages stay
  private drafts until published; pages can be used as templates.
- Deleted pages can be recovered from the Dashboard.
- Full-width top bar with the user at the top right, device icons, consistent buttons.

Tests and docs updated (tests/run.php, README, ARCHITECTURE, DEVELOPMENT, CHANGELOG).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-24 17:47:34 +01:00
Andy Dixon a636ecd991 fix: harden CMS security controls 2026-06-08 17:12:42 +01:00
Andy Dixon 7f4cf860e2 Update README.md 2024-12-02 19:40:22 +00:00
Andy Dixon d0c38378b6 Massive refactor of code into classes, improve security on the image/file upload handler. Clean up the init.php into a config.php and refactor everything else to work around it.
Resolves issues #13 #14 and #16
2024-11-12 21:20:46 +00:00
Andy Dixon 9993357728 Added element and child cloning with .neo-dupe - resolves issue #29 2024-11-11 19:06:12 +00:00
Andy Dixon 03161dbeaa Add check to make sure audit log location is writeable
Some cleanups
2024-10-09 21:06:37 +01:00
Andy Dixon 081401b9ef Update README.md
Typo
2024-10-03 08:54:39 +01:00
Andy Dixon b2b7f85aba Update README.md
Rewrote to be more public, added LICENSE information
2024-10-03 08:54:13 +01:00
Andy Dixon d4c6e49b64 Update README.md 2024-10-03 08:07:54 +01:00
Andy Dixon ccc0ebf795 Add new page system implemented, and Select Page system implemented, Code tidied 2024-10-03 08:07:54 +01:00
Andy Dixon 7cf45e8243 Added README 2024-10-03 08:07:54 +01:00