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:
Roy Wetherall
2013-04-10 09:49:44 +00:00
parent f041d32b21
commit b9963fa247
4 changed files with 20 additions and 7 deletions

View File

@@ -122,7 +122,7 @@ public class RMv21InPlacePatch extends AbstractModuleComponent
// set capabilities // set capabilities
permissionService.setPermission(filePlan, ExtendedReaderDynamicAuthority.EXTENDED_READER, RMPermissionModel.VIEW_RECORDS, true); 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 // create unfiled container
filePlanService.createUnfiledContainer(filePlan); filePlanService.createUnfiledContainer(filePlan);

View File

@@ -343,8 +343,21 @@ public class RecordServiceImpl implements RecordService,
{ {
afterValue = after.get(property); afterValue = after.get(property);
} }
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 (EqualsHelper.nullSafeEquals(beforeValue, afterValue) == false && if (propertyUnchanged == false &&
isPropertyEditable(nodeRef, property) == false) isPropertyEditable(nodeRef, property) == false)
{ {
// the user can't edit the record property // the user can't edit the record property

View File

@@ -194,7 +194,7 @@ public class FilePlanRoleServiceImpl implements FilePlanRoleService,
// set the capabilities // set the capabilities
permissionService.setPermission(rmRootNode, ExtendedReaderDynamicAuthority.EXTENDED_READER, RMPermissionModel.VIEW_RECORDS, true); 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 // Create the unfiled record container
return filePlanService.createUnfiledContainer(rmRootNode); return filePlanService.createUnfiledContainer(rmRootNode);

View File

@@ -270,12 +270,12 @@ public class RecordServiceImplTest extends BaseRMTestCase
assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(filePlan, assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(filePlan,
RMPermissionModel.VIEW_RECORDS)); RMPermissionModel.VIEW_RECORDS));
assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(filePlan, assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(filePlan,
RMPermissionModel.EDIT_RECORD_METADATA)); RMPermissionModel.EDIT_NON_RECORD_METADATA));
Capability filling = capabilityService.getCapability("FileRecords"); Capability filling = capabilityService.getCapability("FileRecords");
assertEquals(AccessStatus.DENIED, filling.hasPermission(dmDocument)); assertEquals(AccessStatus.DENIED, filling.hasPermission(dmDocument));
Capability editRecordMetadata = capabilityService.getCapability("EditRecordMetadata"); Capability editRecordMetadata = capabilityService.getCapability("EditNonRecordMetadata");
assertEquals(AccessStatus.ALLOWED, editRecordMetadata.hasPermission(dmDocument)); assertEquals(AccessStatus.ALLOWED, editRecordMetadata.hasPermission(dmDocument));
Capability updateProperties = capabilityService.getCapability("UpdateProperties"); Capability updateProperties = capabilityService.getCapability("UpdateProperties");
@@ -308,12 +308,12 @@ public class RecordServiceImplTest extends BaseRMTestCase
assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(filePlan, assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(filePlan,
RMPermissionModel.VIEW_RECORDS)); RMPermissionModel.VIEW_RECORDS));
assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(filePlan, assertEquals(AccessStatus.ALLOWED, permissionService.hasPermission(filePlan,
RMPermissionModel.EDIT_RECORD_METADATA)); RMPermissionModel.EDIT_NON_RECORD_METADATA));
Capability filling = capabilityService.getCapability("FileRecords"); Capability filling = capabilityService.getCapability("FileRecords");
assertEquals(AccessStatus.DENIED, filling.hasPermission(dmDocument)); assertEquals(AccessStatus.DENIED, filling.hasPermission(dmDocument));
Capability editRecordMetadata = capabilityService.getCapability("EditRecordMetadata"); Capability editRecordMetadata = capabilityService.getCapability("EditNonRecordMetadata");
assertEquals(AccessStatus.DENIED, editRecordMetadata.hasPermission(dmDocument)); assertEquals(AccessStatus.DENIED, editRecordMetadata.hasPermission(dmDocument));
Capability updateProperties = capabilityService.getCapability("UpdateProperties"); Capability updateProperties = capabilityService.getCapability("UpdateProperties");