diff options
author | Andrew Bartlett <abartlet@samba.org> | 2008-07-11 15:11:32 +1000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2008-07-11 15:11:32 +1000 |
commit | b4691ad5601a9d3e3f8ff8b42314d5e2cb462cd2 (patch) | |
tree | 0fde802e72337732c2c3d98c2b19637da3bfec3b /source4/dsdb/schema | |
parent | c98419d3674f2b21c35240cde90ba895e3aea1c8 (diff) | |
download | samba-b4691ad5601a9d3e3f8ff8b42314d5e2cb462cd2.tar.gz samba-b4691ad5601a9d3e3f8ff8b42314d5e2cb462cd2.tar.bz2 samba-b4691ad5601a9d3e3f8ff8b42314d5e2cb462cd2.zip |
Use common code to fill in allowedAttributes in kludge_acl.
This code is now in common with ad2oLschema.
Andrew Bartlett
(This used to be commit 0a797388ca442c3ad4809888897b1c63b65a7fdf)
Diffstat (limited to 'source4/dsdb/schema')
-rw-r--r-- | source4/dsdb/schema/schema.h | 3 | ||||
-rw-r--r-- | source4/dsdb/schema/schema_init.c | 13 |
2 files changed, 13 insertions, 3 deletions
diff --git a/source4/dsdb/schema/schema.h b/source4/dsdb/schema/schema.h index 66cc867a19..a4e455ae33 100644 --- a/source4/dsdb/schema/schema.h +++ b/source4/dsdb/schema/schema.h @@ -164,7 +164,8 @@ enum dsdb_attr_list_query { DSDB_SCHEMA_SYS_MAY, DSDB_SCHEMA_SYS_MUST, DSDB_SCHEMA_MAY, - DSDB_SCHEMA_MUST + DSDB_SCHEMA_MUST, + DSDB_SCHEMA_ALL }; #include "dsdb/schema/proto.h" diff --git a/source4/dsdb/schema/schema_init.c b/source4/dsdb/schema/schema_init.c index 3a6a8f5553..71d952b944 100644 --- a/source4/dsdb/schema/schema_init.c +++ b/source4/dsdb/schema/schema_init.c @@ -1404,7 +1404,8 @@ static char **merge_attr_list(TALLOC_CTX *mem_ctx, return ret_attrs; } -char **dsdb_full_attribute_list_internal(TALLOC_CTX *mem_ctx, struct dsdb_schema *schema, +char **dsdb_full_attribute_list_internal(TALLOC_CTX *mem_ctx, + const struct dsdb_schema *schema, const char **class_list, enum dsdb_attr_list_query query) { @@ -1443,6 +1444,13 @@ char **dsdb_full_attribute_list_internal(TALLOC_CTX *mem_ctx, struct dsdb_schema case DSDB_SCHEMA_MUST: attr_list = merge_attr_list(mem_ctx, attr_list, class->mustContain); break; + + case DSDB_SCHEMA_ALL: + attr_list = merge_attr_list(mem_ctx, attr_list, class->mayContain); + attr_list = merge_attr_list(mem_ctx, attr_list, class->systemMayContain); + attr_list = merge_attr_list(mem_ctx, attr_list, class->mustContain); + attr_list = merge_attr_list(mem_ctx, attr_list, class->systemMustContain); + break; } recursive_list = dsdb_full_attribute_list_internal(mem_ctx, schema, @@ -1461,7 +1469,8 @@ char **dsdb_full_attribute_list_internal(TALLOC_CTX *mem_ctx, struct dsdb_schema return attr_list; } -char **dsdb_full_attribute_list(TALLOC_CTX *mem_ctx, struct dsdb_schema *schema, +char **dsdb_full_attribute_list(TALLOC_CTX *mem_ctx, + const struct dsdb_schema *schema, const char **class_list, enum dsdb_attr_list_query query) { |