From 80e43886ecf10a286ec840cf9d25cde58b0b0519 Mon Sep 17 00:00:00 2001 From: Mauro Mugnaini Date: Wed, 24 Mar 2021 20:04:42 +0100 Subject: [PATCH] Added also support to publish event on site's Role removal --- .../event/publisher/lr62/model/RoleEvent.java | 18 +++++++++--------- .../lr62/model/RoleEventPublisher.java | 15 +++++++++++++-- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/gcube/portal/event/publisher/lr62/model/RoleEvent.java b/src/main/java/org/gcube/portal/event/publisher/lr62/model/RoleEvent.java index 0a8aeb4..f79f7c5 100644 --- a/src/main/java/org/gcube/portal/event/publisher/lr62/model/RoleEvent.java +++ b/src/main/java/org/gcube/portal/event/publisher/lr62/model/RoleEvent.java @@ -9,7 +9,7 @@ public class RoleEvent extends PortalModelListenerEvent { private static final long serialVersionUID = 3939268094440017646L; public static final String CREATED_NAME = "role_created"; -// public static final String DELETED_NAME = "role_deleted"; + public static final String DELETED_NAME = "role_deleted"; private RoleEvent(String name, Role role) throws PortalException, SystemException { super(name, role); @@ -25,13 +25,13 @@ public class RoleEvent extends PortalModelListenerEvent { } } -// public static RoleEvent newDeletedEvent(Role role) { -// try { -// return new RoleEvent(DELETED_NAME, role); -// } catch (PortalException | SystemException e) { -// log.error("Cannot create event from Role model object", e); -// return null; -// } -// } + public static RoleEvent newDeletedEvent(Role role) { + try { + return new RoleEvent(DELETED_NAME, role); + } catch (PortalException | SystemException e) { + log.error("Cannot create event from Role model object", e); + return null; + } + } } \ No newline at end of file diff --git a/src/main/java/org/gcube/portal/event/publisher/lr62/model/RoleEventPublisher.java b/src/main/java/org/gcube/portal/event/publisher/lr62/model/RoleEventPublisher.java index d1d3e02..a453d13 100644 --- a/src/main/java/org/gcube/portal/event/publisher/lr62/model/RoleEventPublisher.java +++ b/src/main/java/org/gcube/portal/event/publisher/lr62/model/RoleEventPublisher.java @@ -30,12 +30,23 @@ public class RoleEventPublisher extends AbstractEventPublisherBaseModelListener< } } - /* Uninteresting model events */ - @Override public void onBeforeRemove(Role role) throws ModelListenerException { + if (role.getType() == RoleConstants.TYPE_SITE) { + log.info("Removed a role having site type"); + RoleEvent event = RoleEvent.newDeletedEvent(role); + + if (log.isTraceEnabled()) { + log.trace("Event is: " + event); + } + publish(event); + } else if (log.isDebugEnabled()) { + log.debug("Removed a non-site type role: " + role.getName()); + } } + /* Uninteresting model events */ + @Override public void onAfterAddAssociation(Object classPK, String associationClassName, Object associationClassPK) throws ModelListenerException {