summaryrefslogtreecommitdiff
path: root/source4/rpc_server/samr
diff options
context:
space:
mode:
authorMatthias Dieter Wallnöfer <mdw@samba.org>2010-10-25 20:48:18 +0200
committerMatthias Dieter Wallnöfer <mdw@samba.org>2010-10-25 19:37:27 +0000
commit33f65a93fe905d60d8fca85327ddbbf3f8c7fe6e (patch)
treeb65db118f4eed0a04a44927d9a7cf23d7775e292 /source4/rpc_server/samr
parent83c381385cf7d3787497a1adc78bb80e2e9c2e21 (diff)
downloadsamba-33f65a93fe905d60d8fca85327ddbbf3f8c7fe6e.tar.gz
samba-33f65a93fe905d60d8fca85327ddbbf3f8c7fe6e.tar.bz2
samba-33f65a93fe905d60d8fca85327ddbbf3f8c7fe6e.zip
s4:samr RPC server - "dcesrv_samr_info_DomGeneralInformation" - count always all type of groups
One pair are universal an global groups (on the SAMR pipe called "groups") and the other one are the domain and builtin local groups (on the SAMR pipe called "aliases"). Autobuild-User: Matthias Dieter Wallnöfer <mdw@samba.org> Autobuild-Date: Mon Oct 25 19:37:27 UTC 2010 on sn-devel-104
Diffstat (limited to 'source4/rpc_server/samr')
-rw-r--r--source4/rpc_server/samr/dcesrv_samr.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/source4/rpc_server/samr/dcesrv_samr.c b/source4/rpc_server/samr/dcesrv_samr.c
index be96883fc6..e419485cdc 100644
--- a/source4/rpc_server/samr/dcesrv_samr.c
+++ b/source4/rpc_server/samr/dcesrv_samr.c
@@ -524,11 +524,13 @@ static NTSTATUS dcesrv_samr_info_DomGeneralInformation(struct samr_domain_state
"(objectClass=user)");
info->num_groups = samdb_search_count(state->sam_ctx, mem_ctx,
state->domain_dn,
- "(&(objectClass=group)(groupType=%u))",
+ "(&(objectClass=group)(|(groupType=%u)(groupType=%u)))",
+ GTYPE_SECURITY_UNIVERSAL_GROUP,
GTYPE_SECURITY_GLOBAL_GROUP);
info->num_aliases = samdb_search_count(state->sam_ctx, mem_ctx,
state->domain_dn,
- "(&(objectClass=group)(groupType=%u))",
+ "(&(objectClass=group)(|(groupType=%u)(groupType=%u)))",
+ GTYPE_SECURITY_BUILTIN_LOCAL_GROUP,
GTYPE_SECURITY_DOMAIN_LOCAL_GROUP);
return NT_STATUS_OK;
@@ -3570,8 +3572,8 @@ static NTSTATUS dcesrv_samr_GetGroupsForUser(struct dcesrv_call_state *dce_call,
attrs, d_state->domain_sid,
"(&(member=%s)(|(grouptype=%d)(grouptype=%d))(objectclass=group))",
ldb_dn_get_linearized(a_state->account_dn),
- GTYPE_SECURITY_GLOBAL_GROUP,
- GTYPE_SECURITY_UNIVERSAL_GROUP);
+ GTYPE_SECURITY_UNIVERSAL_GROUP,
+ GTYPE_SECURITY_GLOBAL_GROUP);
if (count < 0)
return NT_STATUS_INTERNAL_DB_CORRUPTION;