mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
RM-1089: CLONE - Group added twice for default categories
RM-1314: Permissions can be added twice git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@73619 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -55,7 +55,8 @@ import org.apache.commons.logging.LogFactory;
|
|||||||
*/
|
*/
|
||||||
@BehaviourBean
|
@BehaviourBean
|
||||||
public class FilePlanPermissionServiceImpl extends ServiceBaseImpl
|
public class FilePlanPermissionServiceImpl extends ServiceBaseImpl
|
||||||
implements FilePlanPermissionService
|
implements FilePlanPermissionService,
|
||||||
|
RMPermissionModel
|
||||||
{
|
{
|
||||||
/** Permission service */
|
/** Permission service */
|
||||||
protected PermissionService permissionService;
|
protected PermissionService permissionService;
|
||||||
@@ -512,19 +513,43 @@ public class FilePlanPermissionServiceImpl extends ServiceBaseImpl
|
|||||||
/**
|
/**
|
||||||
* Set the permission, taking into account that filing is a superset of read
|
* Set the permission, taking into account that filing is a superset of read
|
||||||
*
|
*
|
||||||
* @param nodeRef
|
* @param nodeRef node reference
|
||||||
* @param authority
|
* @param authority authority
|
||||||
* @param permission
|
* @param permission permission
|
||||||
*/
|
*/
|
||||||
private void setPermissionImpl(NodeRef nodeRef, String authority, String permission)
|
private void setPermissionImpl(NodeRef nodeRef, String authority, String permission)
|
||||||
{
|
{
|
||||||
if (RMPermissionModel.FILING.equals(permission))
|
boolean hasRead = false;
|
||||||
|
boolean hasFilling = false;
|
||||||
|
|
||||||
|
Set<AccessPermission> perms = permissionService.getAllSetPermissions(nodeRef);
|
||||||
|
for (AccessPermission perm : perms)
|
||||||
{
|
{
|
||||||
// Remove record read permission before adding filing permission
|
if (perm.getAuthority().equals(authority))
|
||||||
permissionService.deletePermission(nodeRef, authority, RMPermissionModel.READ_RECORDS);
|
{
|
||||||
|
if (perm.getPermission().equals(FILING))
|
||||||
|
{
|
||||||
|
hasFilling = true;
|
||||||
|
}
|
||||||
|
else if (perm.getPermission().equals(READ_RECORDS))
|
||||||
|
{
|
||||||
|
hasRead = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
permissionService.setPermission(nodeRef, authority, permission, true);
|
if (FILING.equals(permission) && hasRead)
|
||||||
|
{
|
||||||
|
// remove read permission
|
||||||
|
permissionService.deletePermission(nodeRef, authority, RMPermissionModel.READ_RECORDS);
|
||||||
|
hasRead = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!hasRead && !hasFilling)
|
||||||
|
{
|
||||||
|
// add permission
|
||||||
|
permissionService.setPermission(nodeRef, authority, permission, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user