summaryrefslogtreecommitdiff
path: root/source4/dsdb/schema
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2008-07-11 15:11:32 +1000
committerAndrew Bartlett <abartlet@samba.org>2008-07-11 15:11:32 +1000
commitb4691ad5601a9d3e3f8ff8b42314d5e2cb462cd2 (patch)
tree0fde802e72337732c2c3d98c2b19637da3bfec3b /source4/dsdb/schema
parentc98419d3674f2b21c35240cde90ba895e3aea1c8 (diff)
downloadsamba-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.h3
-rw-r--r--source4/dsdb/schema/schema_init.c13
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)
{