RED-6774 - added change legal basis, recategorize, resize and force actions for reviewer

This commit is contained in:
Valentin Mihai 2023-07-26 15:27:08 +03:00
parent ec307c8bd2
commit fd9d1e06d5
2 changed files with 9 additions and 38 deletions

View File

@ -42,23 +42,22 @@ export class AnnotationPermissions {
const summedPermissions: AnnotationPermissions = new AnnotationPermissions();
const canAddRedaction = permissionsService.has(Roles.redactions.write);
const canDoAnyApproverAction = canAddRedaction && isApprover;
for (const annotation of annotations) {
const permissions: AnnotationPermissions = new AnnotationPermissions();
const annotationEntity = entities.find(entity => entity.type === annotation.type);
permissions.canUndo = canUndo(annotation, isApprover);
permissions.canForceHint = canForceHint(annotation, canDoAnyApproverAction);
permissions.canForceRedaction = canForceRedaction(annotation, canDoAnyApproverAction);
permissions.canForceHint = canForceHint(annotation, canAddRedaction);
permissions.canForceRedaction = canForceRedaction(annotation, canAddRedaction);
permissions.canAcceptRecommendation = canAcceptRecommendation(annotation);
permissions.canMarkAsFalsePositive = canMarkAsFalsePositive(annotation, annotationEntity);
permissions.canRemoveOnlyHere = canRemoveOnlyHere(annotation, canAddRedaction);
permissions.canRemoveFromDictionary = canRemoveFromDictionary(annotation);
permissions.canRemoveRedaction = canRemoveRedaction(annotations, permissions);
permissions.canChangeLegalBasis = canChangeLegalBasis(annotation, canDoAnyApproverAction);
permissions.canRecategorizeImage = canRecategorizeImage(annotation, canDoAnyApproverAction);
permissions.canResizeAnnotation = canResizeAnnotation(annotation, canDoAnyApproverAction);
permissions.canChangeLegalBasis = canChangeLegalBasis(annotation, canAddRedaction);
permissions.canRecategorizeImage = canRecategorizeImage(annotation, canAddRedaction);
permissions.canResizeAnnotation = canResizeAnnotation(annotation, canAddRedaction);
summedPermissions._merge(permissions);
}

View File

@ -79,19 +79,11 @@ export class ManualRedactionService extends GenericService<IManualAddResponse> {
}
changeLegalBasis(body: List<ILegalBasisChangeRequest>, dossierId: string, fileId: string) {
if (this._permissionsService.isApprover(this.#dossier(dossierId))) {
return this.legalBasisChange(body, dossierId, fileId).pipe(this.#showToast('change-legal-basis'));
}
return this.requestLegalBasisChange(body, dossierId, fileId).pipe(this.#showToast('request-change-legal-basis'));
return this.legalBasisChange(body, dossierId, fileId).pipe(this.#showToast('change-legal-basis'));
}
recategorizeImage(body: List<IRecategorizationRequest>, dossierId: string, fileId: string) {
if (this._permissionsService.isApprover(this.#dossier(dossierId))) {
return this.recategorize(body, dossierId, fileId).pipe(this.#showToast('recategorize-image'));
}
return this.requestRecategorize(body, dossierId, fileId).pipe(this.#showToast('request-image-recategorization'));
return this.recategorize(body, dossierId, fileId).pipe(this.#showToast('recategorize-image'));
}
addAnnotation(
@ -112,15 +104,7 @@ export class ManualRedactionService extends GenericService<IManualAddResponse> {
}
bulkForce(requests: List<ILegalBasisChangeRequest>, dossierId: string, fileId: string, isIgnoredHint = false) {
if (this._permissionsService.isApprover(this.#dossier(dossierId))) {
return this.forceRedaction(requests, dossierId, fileId).pipe(
this.#showToast(!isIgnoredHint ? 'force-redaction' : 'force-hint'),
);
}
return this.forceRequest(requests, dossierId, fileId).pipe(
this.#showToast(!isIgnoredHint ? 'request-force-redaction' : 'request-force-hint'),
);
return this.forceRedaction(requests, dossierId, fileId).pipe(this.#showToast(!isIgnoredHint ? 'force-redaction' : 'force-hint'));
}
undoRequest(annotationIds: List, dossierId: string, fileId: string, modifyDictionary = false) {
@ -136,11 +120,7 @@ export class ManualRedactionService extends GenericService<IManualAddResponse> {
}
resizeOrSuggestResize(requests: List<IResizeRequest>, dossierId: string, fileId: string) {
if (this._permissionsService.isApprover(this.#dossier(dossierId))) {
return this.resize(requests, dossierId, fileId);
}
return this.requestResize(requests, dossierId, fileId);
return this.resize(requests, dossierId, fileId);
}
removeRedaction(body: List<IRemoveRedactionRequest>, dossierId: string, fileId: string, removeFromDictionary = false, isHint = false) {
@ -210,18 +190,10 @@ export class ManualRedactionService extends GenericService<IManualAddResponse> {
return this._post(body, `${this.#bulkRedaction}/force/${dossierId}/${fileId}`).pipe(this.#log('Force redaction', body));
}
forceRequest(body: List<ILegalBasisChangeRequest>, dossierId: string, fileId: string) {
return this._post(body, `${this.#bulkRequest}/force/${dossierId}/${fileId}`).pipe(this.#log('Request force redaction', body));
}
resize(body: List<IResizeRequest>, dossierId: string, fileId: string) {
return this._post(body, `${this.#bulkRedaction}/resize/${dossierId}/${fileId}`).pipe(this.#log('Resize', body));
}
requestResize(body: List<IResizeRequest>, dossierId: string, fileId: string) {
return this._post(body, `${this.#bulkRequest}/resize/${dossierId}/${fileId}`).pipe(this.#log('Request resize', body));
}
#log(action: string, body: unknown) {
return tap(response => {
this._logger.info(`[MANUAL-REDACTIONS] ${action} `, body, response);