diff --git a/CHANGELOG.md b/CHANGELOG.md index 32a1c8c..9be170b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,13 @@ and this project follows [Semantic Versioning](https://semver.org/). ## [Unreleased] +## [1.10.3] - 2026-08-28 + +### Fixed + +- Creating an event was never recorded in the admin audit log — 1.10.0 added `event_created` as a logged action on the frontend's filter list, but the backend's `createEvent` never actually called `logAdminAction`, only `updateEvent`/`deleteEvent` did. Event creation is now logged the same way. +- Added a "Back to dashboard" link to Admin → Audit log, matching the back-link pattern already used on the Cashup page. + ## [1.10.2] - 2026-08-28 ### Fixed diff --git a/backend/package-lock.json b/backend/package-lock.json index 47ab166..8968d6e 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -1,12 +1,12 @@ { "name": "event-management-backend", - "version": "1.10.2", + "version": "1.10.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "event-management-backend", - "version": "1.10.2", + "version": "1.10.3", "hasInstallScript": true, "dependencies": { "@prisma/client": "^5.4.2", diff --git a/backend/package.json b/backend/package.json index 169fa7e..c6112bc 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "name": "event-management-backend", - "version": "1.10.2", + "version": "1.10.3", "description": "Event Management System Backend", "main": "src/index.js", "scripts": { diff --git a/backend/src/controllers/eventController.js b/backend/src/controllers/eventController.js index f0dc00b..ebce80e 100644 --- a/backend/src/controllers/eventController.js +++ b/backend/src/controllers/eventController.js @@ -68,8 +68,19 @@ const createEvent = async (req, res) => { location: location || null, }; + const logEventCreate = (createdEvent) => logAdminAction({ + actorId: req.user?.id, + actorRole: req.user?.role, + action: 'event_created', + targetType: 'Event', + targetId: createdEvent.id, + metadata: { title: createdEvent.title }, + ip: getClientIp(req), + }); + try { const event = await prisma.event.create({ data }); + logEventCreate(event); // Automatically create a main ticket (event option) with the event price — contact-only // events have no bookable options, so there's nothing to auto-create for them. @@ -133,24 +144,28 @@ const createEvent = async (req, res) => { // @ts-ignore delete field and retry delete data.registrationDeadline; const event = await prisma.event.create({ data }); + logEventCreate(event); return res.status(201).json(event); } if (msg.includes('Unknown argument `goLiveAt`')) { // @ts-ignore delete field and retry delete data.goLiveAt; const event = await prisma.event.create({ data }); + logEventCreate(event); return res.status(201).json(event); } if (msg.includes('Unknown argument `createdById`')) { // @ts-ignore delete field and retry delete data.createdById; const event = await prisma.event.create({ data }); + logEventCreate(event); return res.status(201).json(event); } if (msg.includes('Unknown argument `redirectUrl`')) { // @ts-ignore delete field and retry delete data.redirectUrl; const event = await prisma.event.create({ data }); + logEventCreate(event); return res.status(201).json(event); } throw err; diff --git a/frontend/package-lock.json b/frontend/package-lock.json index be1135f..8f95047 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,12 +1,12 @@ { "name": "hope-events-frontend", - "version": "1.10.2", + "version": "1.10.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "hope-events-frontend", - "version": "1.10.2", + "version": "1.10.3", "dependencies": { "@hookform/resolvers": "^5.2.1", "@radix-ui/react-accordion": "^1.2.11", diff --git a/frontend/package.json b/frontend/package.json index 3dfa383..9ac79f6 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "hope-events-frontend", - "version": "1.10.2", + "version": "1.10.3", "private": true, "scripts": { "dev": "next dev --turbopack", diff --git a/frontend/src/app/dashboard/admin/audit-log/page.tsx b/frontend/src/app/dashboard/admin/audit-log/page.tsx index 13c8320..e4cc110 100644 --- a/frontend/src/app/dashboard/admin/audit-log/page.tsx +++ b/frontend/src/app/dashboard/admin/audit-log/page.tsx @@ -113,7 +113,8 @@ export default function AdminAuditLogPage() {
-

Admin Audit Log

+ +

Admin Audit Log

{total} action{total !== 1 ? "s" : ""} recorded

diff --git a/package-lock.json b/package-lock.json index 4176b9f..abbc376 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "hope-events", - "version": "1.10.2", + "version": "1.10.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "hope-events", - "version": "1.10.2", + "version": "1.10.3", "license": "ISC", "devDependencies": { "concurrently": "^9.2.1" diff --git a/package.json b/package.json index ac8ad79..e0ef910 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hope-events", - "version": "1.10.2", + "version": "1.10.3", "main": "index.js", "scripts": { "dev:backend": "cd backend && npm run dev",