59 lines
1.2 KiB
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;
|
|
}
|