From e4c0edea06c8fee28369f03f393b7d54b2b6235c Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 16 Sep 2016 13:25:06 +0000
Subject: [PATCH] OPENDJ-3246 Return the CREST descriptor over REST for rest2ldap endpoints
---
opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/AbstractLdapPropertyMapper.java | 32 ++++++++++++++++++++++++++++++++
1 files changed, 32 insertions(+), 0 deletions(-)
diff --git a/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/AbstractLdapPropertyMapper.java b/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/AbstractLdapPropertyMapper.java
index 0feff58..f529243 100644
--- a/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/AbstractLdapPropertyMapper.java
+++ b/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/AbstractLdapPropertyMapper.java
@@ -18,6 +18,8 @@
import static org.forgerock.opendj.rest2ldap.Rest2ldapMessages.*;
import static java.util.Collections.emptyList;
import static java.util.Collections.singletonList;
+
+import static org.forgerock.api.enums.WritePolicy.WRITE_ON_CREATE;
import static org.forgerock.opendj.ldap.Attributes.emptyAttribute;
import static org.forgerock.opendj.rest2ldap.Rest2Ldap.asResourceException;
import static org.forgerock.opendj.rest2ldap.Utils.isNullOrEmpty;
@@ -85,6 +87,16 @@
return getThis();
}
+ @Override
+ boolean isRequired() {
+ return isRequired;
+ }
+
+ @Override
+ boolean isMultiValued() {
+ return isMultiValued;
+ }
+
/**
* Indicates whether the LDAP attribute supports updates. The default is {@link WritabilityPolicy#READ_WRITE}.
*
@@ -351,4 +363,24 @@
}
}
+ void putWritabilityProperties(JsonValue jsonSchema) {
+ switch (writabilityPolicy != null ? writabilityPolicy : WritabilityPolicy.READ_WRITE) {
+ case CREATE_ONLY:
+ jsonSchema.put("writePolicy", WRITE_ON_CREATE.toString());
+ jsonSchema.put("errorOnWritePolicyFailure", true);
+ break;
+ case CREATE_ONLY_DISCARD_WRITES:
+ jsonSchema.put("writePolicy", WRITE_ON_CREATE.toString());
+ break;
+ case READ_ONLY:
+ jsonSchema.put("readOnly", true);
+ jsonSchema.put("errorOnWritePolicyFailure", true);
+ break;
+ case READ_ONLY_DISCARD_WRITES:
+ jsonSchema.put("readOnly", true);
+ break;
+ default:
+ break;
+ }
+ }
}
--
Gitblit v1.10.0