From 40c6cff33eba98a3006780df05785ec8b3240396 Mon Sep 17 00:00:00 2001 From: TRAN Trung Thanh Date: Mon, 19 Aug 2013 14:03:33 +0700 Subject: [PATCH] PLF-5377: Error when assigning a LDAP user in a group if this user is not synchronized Problem analysis - When a membership is created, normally an according folder is created in OrganizationIntegration. If according folder for the user of this membership is not avaiable, there is exception when server tries to create membership folder Fix description: - Only create membership folder if user folder and group folder are both available --- .../platform/organization/integration/Util.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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 +}