package com.constellio.model.services.security; import java.util.ArrayList; import java.util.List; import com.constellio.model.entities.records.Record; import com.constellio.model.services.records.RecordUtils; @SuppressWarnings("serial") public class AuthorizationsServicesRuntimeException extends RuntimeException { public AuthorizationsServicesRuntimeException(String message, Throwable cause) { super(message, cause); } public AuthorizationsServicesRuntimeException(String message) { super(message); } public static class CannotAddUpdateWithoutPrincipalsAndOrTargetRecords extends AuthorizationsServicesRuntimeException { public CannotAddUpdateWithoutPrincipalsAndOrTargetRecords() { super("Cannot add or update authorizations without set principals and/or target records"); } } public static class NoSuchAuthorizationWithId extends AuthorizationsServicesRuntimeException { public NoSuchAuthorizationWithId(String id) { super("No such authorization with id '" + id + "'"); } } public static class NoSuchAuthorizationWithIdOnRecord extends AuthorizationsServicesRuntimeException { public NoSuchAuthorizationWithIdOnRecord(String id, Record record) { super("No such authorization with id '" + id + "' on record '" + record.getIdTitle() + "'"); } } public static class InvalidTargetRecordId extends AuthorizationsServicesRuntimeException { public InvalidTargetRecordId(String id) { super("Invalid target record with id : " + id); } } public static class InvalidPrincipalsIds extends AuthorizationsServicesRuntimeException { public InvalidPrincipalsIds(List<Record> records, List<String> recordIds) { super(buildMessage(records, recordIds)); } private static String buildMessage(List<Record> records, List<String> recordIds) { List<String> notfoundIds = new ArrayList<>(recordIds); notfoundIds.removeAll(new RecordUtils().toIdList(records)); return "Invalid principals records ids : " + notfoundIds; } } public static class NoSuchPrincipalWithUsername extends AuthorizationsServicesRuntimeException { public NoSuchPrincipalWithUsername(String code) { super("No such principal with code/username : " + code); } } public static class CannotDetachConcept extends AuthorizationsServicesRuntimeException { public CannotDetachConcept(String concept) { super("Cannot detach concept : " + concept); } } public static class CannotAddAuhtorizationInNonPrincipalTaxonomy extends AuthorizationsServicesRuntimeException { public CannotAddAuhtorizationInNonPrincipalTaxonomy() { super("Cannot add auhtorization in a non principal taxonomy"); } } public static class CannotSetTaxonomyAsPrincipal extends AuthorizationsServicesRuntimeException { public CannotSetTaxonomyAsPrincipal() { super("Cannot set taxonomy as principal"); } } public static class CannotSetMultiValueInASchemaFromPrincipalTaxonomy extends AuthorizationsServicesRuntimeException { public CannotSetMultiValueInASchemaFromPrincipalTaxonomy() { super("Cannot set multi-value in a schema from principal taxonomy"); } } public static class RecordIsNotAConceptOfPrincipalTaxonomy extends AuthorizationsServicesRuntimeException { public RecordIsNotAConceptOfPrincipalTaxonomy(String recordId, String principalTaxo) { super("Record \"" + recordId + "\" is not a concept of principal taxonomy\"" + principalTaxo + "\""); } } public static class AuthServices_RecordServicesException extends AuthorizationsServicesRuntimeException { public AuthServices_RecordServicesException(Throwable cause) { super("Record service exception", cause); } } }