RED-5482: finish permissions

This commit is contained in:
Dan Percic 2022-11-14 17:59:56 +02:00
parent 8ce945a459
commit 63b4cbcd67
3 changed files with 12 additions and 1 deletions

View File

@ -31,6 +31,7 @@ export class AnnotationPermissions {
const summedPermissions: AnnotationPermissions = new AnnotationPermissions();
const canAddRedaction = permissionsService.has(ROLES.redactions.write);
const canRequestRedaction = permissionsService.has(ROLES.redactions.request);
const canProcessManualRedaction = permissionsService.has(ROLES.redactions.processManualRequest);
const canAddOrRequestRedaction = canAddRedaction || canRequestRedaction;
for (const annotation of annotations) {
@ -38,7 +39,13 @@ export class AnnotationPermissions {
permissions.canUndo = !isApprover && (annotation.isSuggestion || annotation.pending);
permissions.canAcceptSuggestion = isApprover && (annotation.isSuggestion || annotation.isDeclinedSuggestion);
if (annotation.isSuggestionAdd || annotation.isSuggestionRemoveDictionary) {
permissions.canAcceptSuggestion = permissions.canAcceptSuggestion && canProcessManualRedaction;
}
permissions.canRejectSuggestion = isApprover && annotation.isSuggestion;
if (annotation.isSuggestionAdd || annotation.isSuggestionRemoveDictionary) {
permissions.canRejectSuggestion = permissions.canRejectSuggestion && canProcessManualRedaction;
}
permissions.canForceHint = canAddOrRequestRedaction && annotation.isIgnoredHint && !annotation.pending;
permissions.canForceRedaction =

View File

@ -190,6 +190,10 @@ export class AnnotationWrapper implements IListable, Record<string, unknown> {
return !!SuggestionAddSuperTypes[this.superType];
}
get isSuggestionRemoveDictionary() {
return this.superType === SuperTypes.SuggestionRemoveDictionary;
}
get isSuggestionLegalBasisChange() {
return this.superType === SuperTypes.SuggestionChangeLegalBasis;
}

View File

@ -2,7 +2,6 @@ export const ROLES = {
RED_CREATE_TENANT: 'red-create-tenant',
RED_DEPLOYMENT_INFO: 'red-deployment-info',
RED_GET_TENANTS: 'red-get-tenants',
RED_PROCESS_MANUAL_REDACTION_REQUEST: 'red-process-manual-redaction-request',
RED_READ_VERSIONS: 'red-read-versions',
RED_REINDEX: 'red-reindex',
managePreferences: 'red-manage-user-preferences',
@ -27,6 +26,7 @@ export const ROLES = {
deleteManual: 'red-delete-manual-redaction',
deleteImported: 'red-delete-imported-redactions',
request: 'red-request-redaction',
processManualRequest: 'red-process-manual-redaction-request',
},
comments: {
write: 'red-add-comment',