s4:dsdb/schema: add "dsdb:schema update allowed" option to enable schema updates
[samba.git] / source4 / dsdb / schema / schema.h
index fd1e090b85da086d3f0edf3b5d265652f81a96b2..b1ae76882ab035733c62da1bae7b90ae31a9876a 100644 (file)
 
 #include "prefixmap.h"
 
+enum dsdb_dn_format {
+       DSDB_NORMAL_DN,
+       DSDB_BINARY_DN,
+       DSDB_STRING_DN,
+       DSDB_INVALID_DN
+};
+
+
 struct dsdb_attribute;
 struct dsdb_class;
 struct dsdb_schema;
@@ -35,6 +43,9 @@ struct dsdb_syntax_ctx {
 
        /* set when converting objects under Schema NC */
        bool is_schema_nc;
+
+       /* remote prefixMap to be used for drsuapi_to_ldb conversions */
+       const struct dsdb_schema_prefixmap *pfm_remote;
 };
 
 
@@ -62,6 +73,7 @@ struct dsdb_syntax {
        WERROR (*validate_ldb)(const struct dsdb_syntax_ctx *ctx,
                               const struct dsdb_attribute *attr,
                               const struct ldb_message_element *in);
+       bool auto_normalise;
 };
 
 struct dsdb_attribute {
@@ -104,6 +116,9 @@ struct dsdb_attribute {
        bool isDefunct;
        bool systemOnly;
 
+       bool one_way_link;
+       enum dsdb_dn_format dn_format;
+
        /* internal stuff */
        const struct dsdb_syntax *syntax;
        const struct ldb_schema_attribute *ldb_schema_attribute;
@@ -140,6 +155,7 @@ struct dsdb_class {
        const char *defaultSecurityDescriptor;
 
        uint32_t schemaFlagsEx;
+       uint32_t systemFlags;
        struct ldb_val msDs_Schema_Extensions;
 
        bool showInAdvancedViewOnly;
@@ -221,6 +237,7 @@ struct dsdb_schema {
 
        struct {
                bool we_are_master;
+               bool update_allowed;
                struct ldb_dn *master_dn;
        } fsmo;