mirror of
https://github.com/samba-team/samba.git
synced 2025-01-11 05:18:09 +03:00
r24262: Set the objectCategory by default in the objectclass module, rather than using templates.
Modify the samba3sam test to be less fussy, and not use the
objectclass module (which requires proper schema stuff now).
Andrew Bartlett
(This used to be commit 53c248c264
)
This commit is contained in:
parent
49c42e2550
commit
ae7819d715
@ -161,7 +161,7 @@ static int objectclass_sort(struct ldb_module *module,
|
||||
/* Save the next pointer, as the DLIST_ macros will change poss_subclass->next */
|
||||
next = poss_subclass->next;
|
||||
|
||||
if (ldb_attr_cmp(class->subClassOf, current->objectclass) == 0) {
|
||||
if (class && ldb_attr_cmp(class->subClassOf, current->objectclass) == 0) {
|
||||
DLIST_REMOVE(unsorted, poss_subclass);
|
||||
DLIST_ADD(subclass, poss_subclass);
|
||||
|
||||
@ -199,6 +199,7 @@ static int objectclass_sort(struct ldb_module *module,
|
||||
static int objectclass_add(struct ldb_module *module, struct ldb_request *req)
|
||||
{
|
||||
struct ldb_message_element *objectclass_element;
|
||||
const struct dsdb_schema *schema = dsdb_get_schema(module->ldb);
|
||||
struct class_list *sorted, *current;
|
||||
struct ldb_request *down_req;
|
||||
struct ldb_message *msg;
|
||||
@ -265,6 +266,14 @@ static int objectclass_add(struct ldb_module *module, struct ldb_request *req)
|
||||
talloc_free(mem_ctx);
|
||||
return ret;
|
||||
}
|
||||
/* Last one */
|
||||
if (schema && !current->next && !ldb_msg_find_element(msg, "objectCategory")) {
|
||||
const struct dsdb_class *objectclass
|
||||
= dsdb_class_by_lDAPDisplayName(schema, current->objectclass);
|
||||
if (objectclass) {
|
||||
ldb_msg_add_string(msg, "objectCategory", objectclass->defaultObjectCategory);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
talloc_free(mem_ctx);
|
||||
|
@ -4,7 +4,6 @@ objectClass: container
|
||||
description: Container for SAM account templates
|
||||
showInAdvancedViewOnly: TRUE
|
||||
systemFlags: 2348810240
|
||||
objectCategory: CN=Container,${SCHEMADN}
|
||||
isCriticalSystemObject: TRUE
|
||||
|
||||
###
|
||||
@ -30,7 +29,6 @@ primaryGroupID: 513
|
||||
accountExpires: -1
|
||||
logonCount: 0
|
||||
sAMAccountType: 805306368
|
||||
objectCategory: CN=Person,${SCHEMADN}
|
||||
|
||||
dn: CN=TemplateComputer,CN=Templates
|
||||
objectClass: top
|
||||
@ -50,7 +48,6 @@ primaryGroupID: 513
|
||||
accountExpires: -1
|
||||
logonCount: 0
|
||||
sAMAccountType: 805306369
|
||||
objectCategory: CN=Computer,${SCHEMADN}
|
||||
|
||||
dn: CN=TemplateTrustingDomain,CN=Templates
|
||||
objectClass: top
|
||||
@ -74,7 +71,6 @@ objectClass: Template
|
||||
objectClass: groupTemplate
|
||||
groupType: -2147483646
|
||||
sAMAccountType: 268435456
|
||||
objectCategory: CN=Group,${SCHEMADN}
|
||||
|
||||
# Currently this isn't used, we don't have a way to detect it different from an incoming alias
|
||||
#
|
||||
@ -92,7 +88,6 @@ objectClass: top
|
||||
objectClass: Template
|
||||
objectClass: foreignSecurityPrincipalTemplate
|
||||
showInAdvancedViewOnly: TRUE
|
||||
objectCategory: CN=Foreign-Security-Principal,${SCHEMADN}
|
||||
|
||||
dn: CN=TemplateSecret,CN=Templates
|
||||
objectClass: top
|
||||
|
@ -46,7 +46,7 @@ dn: @MAP=samba3sam
|
||||
@TO: sambaDomainName=TESTS," + s3.BASEDN + "
|
||||
|
||||
dn: @MODULES
|
||||
@LIST: rootdse,paged_results,server_sort,extended_dn,asq,samldb,objectclass,password_hash,operational,objectguid,rdn_name,samba3sam,partition
|
||||
@LIST: rootdse,paged_results,server_sort,extended_dn,asq,samldb,password_hash,operational,objectguid,rdn_name,samba3sam,partition
|
||||
|
||||
dn: @PARTITION
|
||||
partition: " + s4.BASEDN + ":" + s4.url + "
|
||||
@ -482,7 +482,7 @@ description: y
|
||||
assert(res.msgs[0].dnsHostName == "x");
|
||||
assert(res.msgs[0].lastLogon == "x");
|
||||
assert(res.msgs[0].objectClass != undefined);
|
||||
assert(res.msgs[0].objectClass[3] == "user");
|
||||
assert(res.msgs[0].objectClass[0] == "user");
|
||||
assert(res.msgs[1].dn == s4.dn("cn=A"));
|
||||
assert(res.msgs[1].dnsHostName == undefined);
|
||||
assert(res.msgs[1].lastLogon == "x");
|
||||
@ -504,7 +504,7 @@ description: y
|
||||
assert(res.msgs[1].dnsHostName == "x");
|
||||
assert(res.msgs[1].lastLogon == "x");
|
||||
assert(res.msgs[1].objectClass != undefined);
|
||||
assert(res.msgs[1].objectClass[3] == "user");
|
||||
assert(res.msgs[1].objectClass[0] == "user");
|
||||
assert(res.msgs[2].dn == s4.dn("cn=A"));
|
||||
assert(res.msgs[2].dnsHostName == undefined);
|
||||
assert(res.msgs[2].lastLogon == "x");
|
||||
|
Loading…
Reference in New Issue
Block a user