From e8a7e9cd6c20dea0b7a96e3ccdf47ec9f14c8a6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Kami=C5=84ski?= Date: Fri, 23 Jan 2026 08:57:13 +0100 Subject: [PATCH] Never change the state of system definitions on edit (#24780) * Never change the state of system definitions on edit --- changelog/unreleased/pr-24780.toml | 6 ++++++ .../graylog/events/rest/EventDefinitionsResource.java | 11 +++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 changelog/unreleased/pr-24780.toml diff --git a/changelog/unreleased/pr-24780.toml b/changelog/unreleased/pr-24780.toml new file mode 100644 index 0000000000..6b675f1a19 --- /dev/null +++ b/changelog/unreleased/pr-24780.toml @@ -0,0 +1,6 @@ +type = "fixed" +message = "Removed unnecessary automatic disabling of system event definitions during editing operations." + +issues = ["22946"] +pulls = ["24780"] + diff --git a/graylog2-server/src/main/java/org/graylog/events/rest/EventDefinitionsResource.java b/graylog2-server/src/main/java/org/graylog/events/rest/EventDefinitionsResource.java index a6408e3e4e..50ae8d95f9 100644 --- a/graylog2-server/src/main/java/org/graylog/events/rest/EventDefinitionsResource.java +++ b/graylog2-server/src/main/java/org/graylog/events/rest/EventDefinitionsResource.java @@ -77,6 +77,7 @@ import org.graylog2.audit.AuditEventSender; import org.graylog2.audit.jersey.AuditEvent; import org.graylog2.audit.jersey.NoAuditEvent; import org.graylog2.database.PaginatedList; +import org.graylog2.database.entities.NonDeletableSystemScope; import org.graylog2.database.entities.source.DBEntitySourceService; import org.graylog2.database.utils.SourcedMongoEntityUtils; import org.graylog2.plugin.rest.PluginRestResource; @@ -357,8 +358,14 @@ public class EventDefinitionsResource extends RestResource implements PluginRest if (result.failed()) { return Response.status(Response.Status.BAD_REQUEST).entity(result).build(); } - - dto = dto.toBuilder().state(schedule ? EventDefinition.State.ENABLED : EventDefinition.State.DISABLED).build(); + if (NonDeletableSystemScope.NAME.equals(dto.scope())) { + //never change the state of system definitions, as the state cannot be later on changed in the UI + dto = dto.toBuilder().build(); + } else { + dto = dto.toBuilder() + .state(schedule ? EventDefinition.State.ENABLED : EventDefinition.State.DISABLED) + .build(); + } recentActivityService.update(definitionId, GRNTypes.EVENT_DEFINITION, userContext.getUser()); return Response.ok().entity(eventDefinitionHandler.update(dto, schedule)).build(); }