RM-6864 Fix roles issue

This commit is contained in:
rlucanu
2019-06-10 15:30:27 +03:00
parent 35a1fd00e7
commit e38904cb91
2 changed files with 30 additions and 2 deletions

View File

@@ -15,6 +15,7 @@
<property name="recordContributorsGroupName" value="${rm.record.contributors.group.name}"/> <property name="recordContributorsGroupName" value="${rm.record.contributors.group.name}"/>
<property name="recordService" ref="RecordService"/> <property name="recordService" ref="RecordService"/>
<property name="filePlanService" ref="FilePlanService"/> <property name="filePlanService" ref="FilePlanService"/>
<property name="filePlanRoleService" ref="FilePlanRoleService" />
<property name="capabilityService" ref="CapabilityService"/> <property name="capabilityService" ref="CapabilityService"/>
<property name="dictionaryService" ref="DictionaryService" /> <property name="dictionaryService" ref="DictionaryService" />
<property name="siteService" ref="SiteService" /> <property name="siteService" ref="SiteService" />

View File

@@ -36,9 +36,11 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set;
import org.alfresco.model.ContentModel; import org.alfresco.model.ContentModel;
import org.alfresco.module.org_alfresco_module_rm.capability.CapabilityService; 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.capability.impl.ViewRecordsCapability;
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionAction; 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.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.fileplan.FilePlanService;
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel; 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.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.cache.SimpleCache;
import org.alfresco.repo.node.NodeServicePolicies; import org.alfresco.repo.node.NodeServicePolicies;
import org.alfresco.repo.policy.JavaBehaviour; 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.ChildAssociationRef;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.security.AccessStatus; 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.SiteInfo;
import org.alfresco.service.cmr.site.SiteService; import org.alfresco.service.cmr.site.SiteService;
import org.alfresco.service.namespace.NamespaceService; import org.alfresco.service.namespace.NamespaceService;
@@ -95,6 +100,9 @@ public class JSONConversionComponent extends org.alfresco.repo.jscript.app.JS
/** File plan service */ /** File plan service */
private FilePlanService filePlanService; private FilePlanService filePlanService;
/** File plan role service */
protected FilePlanRoleService filePlanRoleService;
/** Capability service */ /** Capability service */
private CapabilityService capabilityService; private CapabilityService capabilityService;
@@ -156,6 +164,14 @@ public class JSONConversionComponent extends org.alfresco.repo.jscript.app.JS
this.filePlanService = filePlanService; this.filePlanService = filePlanService;
} }
/**
* @param filePlanRoleService file plan role service
*/
public void setFilePlanRoleService(FilePlanRoleService filePlanRoleService)
{
this.filePlanRoleService = filePlanRoleService;
}
/** /**
* @param capabilityService capability service * @param capabilityService capability service
*/ */
@@ -277,7 +293,7 @@ public class JSONConversionComponent extends org.alfresco.repo.jscript.app.JS
// Set the base root values // Set the base root values
super.setRootValues(nodeInfo, rootJSONObject, useShortQNames); super.setRootValues(nodeInfo, rootJSONObject, useShortQNames);
// check the exisitance of the RM site // check the existence of the RM site
checkRmSiteExistence(rootJSONObject); checkRmSiteExistence(rootJSONObject);
// get the record contributor information // get the record contributor information
@@ -301,11 +317,22 @@ public class JSONConversionComponent extends org.alfresco.repo.jscript.app.JS
addInfo(nodeInfo, rootJSONObject); addInfo(nodeInfo, rootJSONObject);
} }
} }
Set<NodeRef> filePlans = filePlanService.getFilePlans();
if (!filePlans.isEmpty())
{
NodeRef filePlanNodeRef = filePlans.stream().findFirst().orElse(null);
if (filePlanNodeRef != null)
{
Set<Role> 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 * @param rootJSONObject the root JSON object
*/ */