From e38904cb9108f78040cc0953fa19c38a4be80b53 Mon Sep 17 00:00:00 2001 From: rlucanu Date: Mon, 10 Jun 2019 15:30:27 +0300 Subject: [PATCH 1/4] RM-6864 Fix roles issue --- .../rm-ui-evaluators-context.xml | 1 + .../jscript/app/JSONConversionComponent.java | 31 +++++++++++++++++-- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/rm-ui-evaluators-context.xml b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/rm-ui-evaluators-context.xml index 6be1b778bb..290e36f303 100644 --- a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/rm-ui-evaluators-context.xml +++ b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/rm-ui-evaluators-context.xml @@ -15,6 +15,7 @@ + diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/jscript/app/JSONConversionComponent.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/jscript/app/JSONConversionComponent.java index 04ca0201a0..df1100e548 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/jscript/app/JSONConversionComponent.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/jscript/app/JSONConversionComponent.java @@ -36,9 +36,11 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Set; import org.alfresco.model.ContentModel; import org.alfresco.module.org_alfresco_module_rm.capability.CapabilityService; +import org.alfresco.module.org_alfresco_module_rm.capability.RMPermissionModel; import org.alfresco.module.org_alfresco_module_rm.capability.impl.ViewRecordsCapability; import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionAction; import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService; @@ -47,6 +49,8 @@ import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanComponentKind import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService; import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel; import org.alfresco.module.org_alfresco_module_rm.record.RecordService; +import org.alfresco.module.org_alfresco_module_rm.role.FilePlanRoleService; +import org.alfresco.module.org_alfresco_module_rm.role.Role; import org.alfresco.repo.cache.SimpleCache; import org.alfresco.repo.node.NodeServicePolicies; import org.alfresco.repo.policy.JavaBehaviour; @@ -58,6 +62,7 @@ import org.alfresco.service.cmr.model.FileInfo; import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.security.AccessStatus; +import org.alfresco.service.cmr.security.PermissionService; import org.alfresco.service.cmr.site.SiteInfo; import org.alfresco.service.cmr.site.SiteService; import org.alfresco.service.namespace.NamespaceService; @@ -95,6 +100,9 @@ public class JSONConversionComponent extends org.alfresco.repo.jscript.app.JS /** File plan service */ private FilePlanService filePlanService; + /** File plan role service */ + protected FilePlanRoleService filePlanRoleService; + /** Capability service */ private CapabilityService capabilityService; @@ -156,6 +164,14 @@ public class JSONConversionComponent extends org.alfresco.repo.jscript.app.JS this.filePlanService = filePlanService; } + /** + * @param filePlanRoleService file plan role service + */ + public void setFilePlanRoleService(FilePlanRoleService filePlanRoleService) + { + this.filePlanRoleService = filePlanRoleService; + } + /** * @param capabilityService capability service */ @@ -277,7 +293,7 @@ public class JSONConversionComponent extends org.alfresco.repo.jscript.app.JS // Set the base root values super.setRootValues(nodeInfo, rootJSONObject, useShortQNames); - // check the exisitance of the RM site + // check the existence of the RM site checkRmSiteExistence(rootJSONObject); // get the record contributor information @@ -301,11 +317,22 @@ public class JSONConversionComponent extends org.alfresco.repo.jscript.app.JS addInfo(nodeInfo, rootJSONObject); } } + Set filePlans = filePlanService.getFilePlans(); + if (!filePlans.isEmpty()) + { + NodeRef filePlanNodeRef = filePlans.stream().findFirst().orElse(null); + if (filePlanNodeRef != null) + { + Set roles = filePlanRoleService.getRolesByUser(filePlanNodeRef, AuthenticationUtil.getFullyAuthenticatedUser()); + boolean hasFilingPermission = (roles != null && roles.size() > 0) ? true : false; + rootJSONObject.put("isVisibleForCurrentUser", hasFilingPermission); + } + } } } /** - * Checks for the existance of the RM site + * Checks for the existence of the RM site * * @param rootJSONObject the root JSON object */ From 0e9a8551822b69d723d77a0a950fe3ecd09882a7 Mon Sep 17 00:00:00 2001 From: rlucanu Date: Mon, 10 Jun 2019 21:21:46 +0300 Subject: [PATCH 2/4] RM-6864 Changed label to be consistent with File to action --- .../module/org_alfresco_module_rm/messages/actions.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/messages/actions.properties b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/messages/actions.properties index e2d43aa52b..8095c5c74e 100644 --- a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/messages/actions.properties +++ b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/messages/actions.properties @@ -51,7 +51,7 @@ create-record.title=Declare as Record create-record.description=Declares file as a record and optionally files it create-record.file-plan.display-label=File Plan create-record.hide-record.display-label=Hide Record -create-record.path.display-label=Destination Record Folder Path +create-record.path.display-label=Record Folder Location # Declare As Version Record declare-as-version-record.title=Declare Version as Record declare-as-version-record.description=Declares this version of the file as a record From ad620ba6b5c53751b10b447068e5dd62eea1dc1e Mon Sep 17 00:00:00 2001 From: rlucanu Date: Wed, 12 Jun 2019 11:37:50 +0300 Subject: [PATCH 3/4] RM-6864 Code review changes --- .../jscript/app/JSONConversionComponent.java | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/jscript/app/JSONConversionComponent.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/jscript/app/JSONConversionComponent.java index df1100e548..a7797276fe 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/jscript/app/JSONConversionComponent.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/jscript/app/JSONConversionComponent.java @@ -40,9 +40,7 @@ import java.util.Set; import org.alfresco.model.ContentModel; import org.alfresco.module.org_alfresco_module_rm.capability.CapabilityService; -import org.alfresco.module.org_alfresco_module_rm.capability.RMPermissionModel; import org.alfresco.module.org_alfresco_module_rm.capability.impl.ViewRecordsCapability; -import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionAction; import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService; import org.alfresco.module.org_alfresco_module_rm.event.EventCompletionDetails; import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanComponentKind; @@ -62,12 +60,12 @@ import org.alfresco.service.cmr.model.FileInfo; import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.security.AccessStatus; -import org.alfresco.service.cmr.security.PermissionService; import org.alfresco.service.cmr.site.SiteInfo; import org.alfresco.service.cmr.site.SiteService; import org.alfresco.service.namespace.NamespaceService; import org.alfresco.service.namespace.QName; import org.alfresco.util.PathUtil; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.ArrayUtils; import org.json.simple.JSONArray; import org.json.simple.JSONObject; @@ -87,6 +85,7 @@ public class JSONConversionComponent extends org.alfresco.repo.jscript.app.JS private static final String IS_RM_SITE_CREATED = "isRmSiteCreated"; private static final String IS_RECORD_CONTRIBUTOR_GROUP_ENABLED = "isRecordContributorGroupEnabled"; private static final String RECORD_CONTRIBUTOR_GROUP_NAME = "recordContributorGroupName"; + private static final String IS_VISIBLE_FOR_CURRENT_USER = "isVisibleForCurrentUser"; /** true if record contributor group is enabled, false otherwise */ private boolean isRecordContributorsGroupEnabled = false; @@ -101,7 +100,7 @@ public class JSONConversionComponent extends org.alfresco.repo.jscript.app.JS private FilePlanService filePlanService; /** File plan role service */ - protected FilePlanRoleService filePlanRoleService; + private FilePlanRoleService filePlanRoleService; /** Capability service */ private CapabilityService capabilityService; @@ -318,14 +317,14 @@ public class JSONConversionComponent extends org.alfresco.repo.jscript.app.JS } } Set filePlans = filePlanService.getFilePlans(); - if (!filePlans.isEmpty()) + if (!CollectionUtils.isEmpty(filePlans)) { NodeRef filePlanNodeRef = filePlans.stream().findFirst().orElse(null); if (filePlanNodeRef != null) { Set roles = filePlanRoleService.getRolesByUser(filePlanNodeRef, AuthenticationUtil.getFullyAuthenticatedUser()); - boolean hasFilingPermission = (roles != null && roles.size() > 0) ? true : false; - rootJSONObject.put("isVisibleForCurrentUser", hasFilingPermission); + boolean hasFilingPermission = CollectionUtils.isEmpty(roles); + rootJSONObject.put(IS_VISIBLE_FOR_CURRENT_USER, hasFilingPermission); } } } From 54097b2fb504dd1dd7f5de48e9887734debee451 Mon Sep 17 00:00:00 2001 From: rlucanu Date: Wed, 12 Jun 2019 15:40:51 +0300 Subject: [PATCH 4/4] RM-6864 fixed condition --- .../jscript/app/JSONConversionComponent.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/jscript/app/JSONConversionComponent.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/jscript/app/JSONConversionComponent.java index a7797276fe..d24f146691 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/jscript/app/JSONConversionComponent.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/jscript/app/JSONConversionComponent.java @@ -323,7 +323,7 @@ public class JSONConversionComponent extends org.alfresco.repo.jscript.app.JS if (filePlanNodeRef != null) { Set roles = filePlanRoleService.getRolesByUser(filePlanNodeRef, AuthenticationUtil.getFullyAuthenticatedUser()); - boolean hasFilingPermission = CollectionUtils.isEmpty(roles); + boolean hasFilingPermission = !CollectionUtils.isEmpty(roles); rootJSONObject.put(IS_VISIBLE_FOR_CURRENT_USER, hasFilingPermission); } }