package org.gcube.application.geoportal.common.model.profile; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.*; import org.bson.Document; import java.util.List; @NoArgsConstructor @AllArgsConstructor @Getter @Setter @ToString public class DataAccessPolicy { public static final String POLICY = "_policy"; public static final String ROLES = "_roles"; public static final String ENFORCER = "_enforcer"; @NoArgsConstructor @AllArgsConstructor @Getter @Setter @ToString public static class Policy { public static final String WRITE="_write"; public static final String READ="_read"; public static enum Type{ OWN,NONE,ANY } @JsonProperty(WRITE) private Type write; @JsonProperty(READ) private Type read; } @NoArgsConstructor @AllArgsConstructor @Getter @Setter @ToString public static class PolicyEnforcer { public static final String FILTER="_filter"; @JsonProperty(FILTER) private Document filter; } @JsonProperty(POLICY) private Policy policy; @JsonProperty(ROLES) private List roles; @JsonProperty(ENFORCER) private PolicyEnforcer enforcer; }