gcube-cms-suite/geoportal-common/src/main/java/org/gcube/application/geoportal/common/model/profile/DataAccessPolicy.java

59 lines
1.2 KiB
Java

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<String> roles;
@JsonProperty(ENFORCER)
private PolicyEnforcer enforcer;
}