diff --git a/component/organization/src/main/java/org/exoplatform/platform/organization/integration/Util.java b/component/organization/src/main/java/org/exoplatform/platform/organization/integration/Util.java index e1fe64c3f2..0b43c9e978 100644 --- a/component/organization/src/main/java/org/exoplatform/platform/organization/integration/Util.java +++ b/component/organization/src/main/java/org/exoplatform/platform/organization/integration/Util.java @@ -161,6 +161,14 @@ public static void createProfileFolder(Session session, String username) throws } public static void createMembershipFolder(Session session, Membership membership) throws Exception { + if (!hasUserFolder(session, membership.getUserName())) { + LOG.debug("listeners of user " + membership.getUserName() + " aren't executed, ignore membership integration feature."); + return; + } + if (!hasGroupFolder(session, membership.getGroupId())) { + LOG.debug("listeners of group " + membership.getGroupId() + " aren't executed, ignore membership integration feature."); + return; + } createFolder(getMembershipsFolder(session), membership.getGroupId().replace("/", SPECIAL_CHARACTER_REPLACEMENT) + MEMBERSHIP_SEPARATOR + membership.getMembershipType().replace("*", SPECIAL_CHARACTER_REPLACEMENT) + MEMBERSHIP_SEPARATOR + membership.getUserName()); @@ -339,4 +347,4 @@ public static String computeId(Membership membership) { return id.toString(); } -} \ No newline at end of file +}