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
|
// 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);
|
||||||
|
@@ -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
|
||||||
|
@@ -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);
|
||||||
|
@@ -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");
|
||||||
|
Reference in New Issue
Block a user