mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-10-01 14:41:46 +00:00
RM-1463 (Item the user has read only permissions for can be added to hold in from Records Search results)
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@70096 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -30,6 +30,7 @@ import java.util.Set;
|
||||
|
||||
import org.alfresco.error.AlfrescoRuntimeException;
|
||||
import org.alfresco.model.ContentModel;
|
||||
import org.alfresco.module.org_alfresco_module_rm.capability.RMPermissionModel;
|
||||
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;
|
||||
@@ -45,6 +46,8 @@ import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
|
||||
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.repository.NodeService;
|
||||
import org.alfresco.service.cmr.security.AccessStatus;
|
||||
import org.alfresco.service.cmr.security.PermissionService;
|
||||
import org.alfresco.service.namespace.NamespaceService;
|
||||
import org.alfresco.service.namespace.QName;
|
||||
import org.alfresco.service.namespace.RegexQNamePattern;
|
||||
@@ -77,6 +80,9 @@ public class HoldServiceImpl extends ServiceBaseImpl
|
||||
/** Record folder service */
|
||||
private RecordFolderService recordFolderService;
|
||||
|
||||
/** Permission service */
|
||||
private PermissionService permissionService;
|
||||
|
||||
/**
|
||||
* Set the file plan service
|
||||
*
|
||||
@@ -117,6 +123,16 @@ public class HoldServiceImpl extends ServiceBaseImpl
|
||||
this.recordFolderService = recordFolderService;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the permission service
|
||||
*
|
||||
* @param permissionService the permission services
|
||||
*/
|
||||
public void setPermissionService(PermissionService permissionService)
|
||||
{
|
||||
this.permissionService = permissionService;
|
||||
}
|
||||
|
||||
/**
|
||||
* Behaviour unfreezes node's that will no longer he held after delete.
|
||||
*
|
||||
@@ -442,6 +458,11 @@ public class HoldServiceImpl extends ServiceBaseImpl
|
||||
throw new AlfrescoRuntimeException("Can only add records or record folders to a hold.");
|
||||
}
|
||||
|
||||
if (permissionService.hasPermission(nodeRef, RMPermissionModel.FILING) == AccessStatus.DENIED)
|
||||
{
|
||||
throw new AlfrescoRuntimeException("Filing permission on the record or record folder is required.");
|
||||
}
|
||||
|
||||
for (final NodeRef hold : holds)
|
||||
{
|
||||
if (!isHold(hold))
|
||||
@@ -453,7 +474,7 @@ public class HoldServiceImpl extends ServiceBaseImpl
|
||||
if (!getHeld(hold).contains(nodeRef))
|
||||
{
|
||||
// run as system to ensure we have all the appropriate premissions to perform the manipulations we require
|
||||
runAsSystem(new RunAsWork<Void>()
|
||||
runAsSystem(new RunAsWork<Void>()
|
||||
{
|
||||
@Override
|
||||
public Void doWork() throws Exception
|
||||
@@ -499,7 +520,7 @@ public class HoldServiceImpl extends ServiceBaseImpl
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
});
|
||||
|
Reference in New Issue
Block a user