CE-882 Add READ scope; fix filterForLockTree to make correct recursive call

This commit is contained in:
2024-04-28 20:32:15 -05:00
parent 9ebf07665a
commit bab994edbe
2 changed files with 5 additions and 4 deletions

View File

@ -129,8 +129,9 @@ public class RecordSecurityLock implements Cloneable
*******************************************************************************/ *******************************************************************************/
public enum LockScope public enum LockScope
{ {
READ_AND_WRITE, READ_AND_WRITE, // lock both reads and writes
WRITE WRITE, // only lock writes
READ // only lock reads
} }

View File

@ -52,7 +52,7 @@ public class RecordSecurityLockFilters
*******************************************************************************/ *******************************************************************************/
public static MultiRecordSecurityLock filterForReadLockTree(List<RecordSecurityLock> recordSecurityLocks) public static MultiRecordSecurityLock filterForReadLockTree(List<RecordSecurityLock> recordSecurityLocks)
{ {
return filterForLockTree(recordSecurityLocks, Set.of(RecordSecurityLock.LockScope.READ_AND_WRITE)); return filterForLockTree(recordSecurityLocks, Set.of(RecordSecurityLock.LockScope.READ_AND_WRITE, RecordSecurityLock.LockScope.READ));
} }
@ -88,7 +88,7 @@ public class RecordSecurityLockFilters
{ {
if(recordSecurityLock instanceof MultiRecordSecurityLock multiRecordSecurityLock) if(recordSecurityLock instanceof MultiRecordSecurityLock multiRecordSecurityLock)
{ {
MultiRecordSecurityLock filteredSubLock = filterForReadLockTree(multiRecordSecurityLock.getLocks()); MultiRecordSecurityLock filteredSubLock = filterForLockTree(multiRecordSecurityLock.getLocks(), allowedScopes);
filteredSubLock.setOperator(multiRecordSecurityLock.getOperator()); filteredSubLock.setOperator(multiRecordSecurityLock.getOperator());
result.withLock(filteredSubLock); result.withLock(filteredSubLock);
} }