diff options
author | Volker Lendecke <vlendec@samba.org> | 2005-11-26 19:17:57 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 11:05:35 -0500 |
commit | 4ce649984982fc5b9c83c7685182951352bca12d (patch) | |
tree | 1d99c834b0c1086c9decf806cdd9ee82b695a4cf /source3/rpc_server/srv_netlog_nt.c | |
parent | 5cc200ae5509d73176cdcbf0180bf450077d512a (diff) | |
download | samba-4ce649984982fc5b9c83c7685182951352bca12d.tar.gz samba-4ce649984982fc5b9c83c7685182951352bca12d.tar.bz2 samba-4ce649984982fc5b9c83c7685182951352bca12d.zip |
r11917: Move nt_token_to_group_list to srv_netlog_nt.c. srv_util.c is empty now.
Volker
(This used to be commit ae4ffc1cfb745a756d047c35f947f80acf4b0e55)
Diffstat (limited to 'source3/rpc_server/srv_netlog_nt.c')
-rw-r--r-- | source3/rpc_server/srv_netlog_nt.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/source3/rpc_server/srv_netlog_nt.c b/source3/rpc_server/srv_netlog_nt.c index 7903adff6d..d0d47be9f2 100644 --- a/source3/rpc_server/srv_netlog_nt.c +++ b/source3/rpc_server/srv_netlog_nt.c @@ -584,6 +584,35 @@ NTSTATUS _net_sam_logoff(pipes_struct *p, NET_Q_SAM_LOGOFF *q_u, NET_R_SAM_LOGOF } +/******************************************************************* + gets a domain user's groups from their already-calculated NT_USER_TOKEN + ********************************************************************/ +static NTSTATUS nt_token_to_group_list(TALLOC_CTX *mem_ctx, const DOM_SID *domain_sid, + const NT_USER_TOKEN *nt_token, + int *numgroups, DOM_GID **pgids) +{ + DOM_GID *gids; + int i; + + gids = TALLOC_ARRAY(mem_ctx, DOM_GID, nt_token->num_sids); + + if (!gids) { + return NT_STATUS_NO_MEMORY; + } + + *numgroups=0; + + for (i=PRIMARY_GROUP_SID_INDEX; i < nt_token->num_sids; i++) { + if (sid_compare_domain(domain_sid, &nt_token->user_sids[i])==0) { + sid_peek_rid(&nt_token->user_sids[i], &(gids[*numgroups].g_rid)); + gids[*numgroups].attr= (SE_GROUP_MANDATORY|SE_GROUP_ENABLED_BY_DEFAULT|SE_GROUP_ENABLED); + (*numgroups)++; + } + } + *pgids = gids; + return NT_STATUS_OK; +} + /************************************************************************* _net_sam_logon *************************************************************************/ |