mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
RM: Users with write permission on doc that is made record can only edit doc metadata by default.
* relates to RM-600 * date property handling improvement git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@49047 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -122,7 +122,7 @@ public class RMv21InPlacePatch extends AbstractModuleComponent
|
||||
|
||||
// set capabilities
|
||||
permissionService.setPermission(filePlan, ExtendedReaderDynamicAuthority.EXTENDED_READER, RMPermissionModel.VIEW_RECORDS, true);
|
||||
permissionService.setPermission(filePlan, ExtendedReaderDynamicAuthority.EXTENDED_READER, RMPermissionModel.EDIT_RECORD_METADATA, true);
|
||||
permissionService.setPermission(filePlan, ExtendedReaderDynamicAuthority.EXTENDED_READER, RMPermissionModel.EDIT_NON_RECORD_METADATA, true);
|
||||
|
||||
// create unfiled container
|
||||
filePlanService.createUnfiledContainer(filePlan);
|
||||
|
@@ -344,7 +344,20 @@ public class RecordServiceImpl implements RecordService,
|
||||
afterValue = after.get(property);
|
||||
}
|
||||
|
||||
if (EqualsHelper.nullSafeEquals(beforeValue, afterValue) == false &&
|
||||
boolean propertyUnchanged = false;
|
||||
if (beforeValue != null && afterValue != null &&
|
||||
beforeValue instanceof Date && afterValue instanceof Date)
|
||||
{
|
||||
// deal with date values
|
||||
propertyUnchanged = (((Date)beforeValue).compareTo((Date)afterValue) == 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
// otherwise
|
||||
propertyUnchanged = EqualsHelper.nullSafeEquals(beforeValue, afterValue);
|
||||
}
|
||||
|
||||
if (propertyUnchanged == false &&
|
||||
isPropertyEditable(nodeRef, property) == false)
|
||||
{
|
||||
// the user can't edit the record property
|
||||
|
@@ -194,7 +194,7 @@ public class FilePlanRoleServiceImpl implements FilePlanRoleService,
|
||||
|
||||
// set the capabilities
|
||||
permissionService.setPermission(rmRootNode, ExtendedReaderDynamicAuthority.EXTENDED_READER, RMPermissionModel.VIEW_RECORDS, true);
|
||||
permissionService.setPermission(rmRootNode, ExtendedReaderDynamicAuthority.EXTENDED_READER, RMPermissionModel.EDIT_RECORD_METADATA, true);
|
||||
permissionService.setPermission(rmRootNode, ExtendedReaderDynamicAuthority.EXTENDED_READER, RMPermissionModel.EDIT_NON_RECORD_METADATA, true);
|
||||
|
||||
// Create the unfiled record container
|
||||
return filePlanService.createUnfiledContainer(rmRootNode);
|
||||
|
@@ -270,12 +270,12 @@ public class RecordServiceImplTest extends BaseRMTestCase
|
||||
assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(filePlan,
|
||||
RMPermissionModel.VIEW_RECORDS));
|
||||
assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(filePlan,
|
||||
RMPermissionModel.EDIT_RECORD_METADATA));
|
||||
RMPermissionModel.EDIT_NON_RECORD_METADATA));
|
||||
|
||||
Capability filling = capabilityService.getCapability("FileRecords");
|
||||
assertEquals(AccessStatus.DENIED, filling.hasPermission(dmDocument));
|
||||
|
||||
Capability editRecordMetadata = capabilityService.getCapability("EditRecordMetadata");
|
||||
Capability editRecordMetadata = capabilityService.getCapability("EditNonRecordMetadata");
|
||||
assertEquals(AccessStatus.ALLOWED, editRecordMetadata.hasPermission(dmDocument));
|
||||
|
||||
Capability updateProperties = capabilityService.getCapability("UpdateProperties");
|
||||
@@ -308,12 +308,12 @@ public class RecordServiceImplTest extends BaseRMTestCase
|
||||
assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(filePlan,
|
||||
RMPermissionModel.VIEW_RECORDS));
|
||||
assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(filePlan,
|
||||
RMPermissionModel.EDIT_RECORD_METADATA));
|
||||
RMPermissionModel.EDIT_NON_RECORD_METADATA));
|
||||
|
||||
Capability filling = capabilityService.getCapability("FileRecords");
|
||||
assertEquals(AccessStatus.DENIED, filling.hasPermission(dmDocument));
|
||||
|
||||
Capability editRecordMetadata = capabilityService.getCapability("EditRecordMetadata");
|
||||
Capability editRecordMetadata = capabilityService.getCapability("EditNonRecordMetadata");
|
||||
assertEquals(AccessStatus.DENIED, editRecordMetadata.hasPermission(dmDocument));
|
||||
|
||||
Capability updateProperties = capabilityService.getCapability("UpdateProperties");
|
||||
|
Reference in New Issue
Block a user