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() {
{total} action{total !== 1 ? "s" : ""} recorded