2 Unix SMB/CIFS mplementation.
5 Copyright (C) Stefan Metzmacher <metze@samba.org> 2006
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>.
22 #ifndef _DSDB_SCHEMA_H
23 #define _DSDB_SCHEMA_H
25 struct dsdb_attribute;
33 struct ldb_val oMObjectClass;
34 const char *attributeSyntax_oid;
36 WERROR (*drsuapi_to_ldb)(const struct dsdb_schema *schema,
37 const struct dsdb_attribute *attr,
38 const struct drsuapi_DsReplicaAttribute *in,
40 struct ldb_message_element *out);
41 WERROR (*ldb_to_drsuapi)(const struct dsdb_schema *schema,
42 const struct dsdb_attribute *attr,
43 const struct ldb_message_element *in,
45 struct drsuapi_DsReplicaAttribute *out);
48 struct dsdb_attribute {
49 struct dsdb_attribute *prev, *next;
52 const char *lDAPDisplayName;
53 const char *attributeID_oid;
54 uint32_t attributeID_id;
55 struct GUID schemaIDGUID;
58 struct GUID attributeSecurityGUID;
62 BOOL isMemberOfPartialAttributeSet;
65 const char *attributeSyntax_oid;
66 uint32_t attributeSyntax_id;
68 struct ldb_val oMObjectClass;
73 BOOL extendedCharsAllowed;
75 uint32_t schemaFlagsEx;
76 struct ldb_val msDs_Schema_Extensions;
78 BOOL showInAdvancedViewOnly;
79 const char *adminDisplayName;
80 const char *adminDescription;
81 const char *classDisplayName;
87 const struct dsdb_syntax *syntax;
91 struct dsdb_class *prev, *next;
94 const char *lDAPDisplayName;
95 const char *governsID_oid;
96 uint32_t governsID_id;
97 struct GUID schemaIDGUID;
99 uint32_t objectClassCategory;
100 const char *rDNAttID;
101 const char *defaultObjectCategory;
103 const char *subClassOf;
105 const char **systemAuxiliaryClass;
106 const char **systemPossSuperiors;
107 const char **systemMustContain;
108 const char **systemMayContain;
110 const char **auxiliaryClass;
111 const char **possSuperiors;
112 const char **mustContain;
113 const char **mayContain;
115 const char *defaultSecurityDescriptor;
117 uint32_t schemaFlagsEx;
118 struct ldb_val msDs_Schema_Extensions;
120 BOOL showInAdvancedViewOnly;
121 const char *adminDisplayName;
122 const char *adminDescription;
123 const char *classDisplayName;
124 BOOL defaultHidingValue;
129 struct dsdb_schema_oid_prefix {
136 uint32_t num_prefixes;
137 struct dsdb_schema_oid_prefix *prefixes;
140 * the last element of the prefix mapping table isn't a oid,
141 * it starts with 0xFF and has 21 bytes and is maybe a schema
144 * this is the content of the schemaInfo attribute of the
145 * Schema-Partition head object.
147 const char *schema_info;
149 struct dsdb_attribute *attributes;
150 struct dsdb_class *classes;
153 #endif /* _DSDB_SCHEMA_H */