mirror of
https://github.com/samba-team/samba.git
synced 2025-01-17 02:05:21 +03:00
e13bc43262
of my own changes. In particular: I've added a SAM_ASSERT macro. This expands to either SMB_ASSERT() (which should help us track down bugs) or a return of NT_STATUS_CHECK_FAIL. Metze's changes are mostly to bring the code into line with current discussions on things like adding users/groups, flags etc. I've adjusted a fair bit of the 'const' in the SAM stuff. Const is currently used only for pointers, not for local variables or non-pointer paramters. The benifits and reasons for extending this further need discussion on samba-technical. Also, some of the 'context' paramters should not be const, to allow backend modules to do fancy caching etc in them. Andrew Bartlett
-
107 lines
2.5 KiB
C
107 lines
2.5 KiB
C
/*
|
|
Unix SMB/CIFS implementation.
|
|
SAM_USER_HANDLE access routines
|
|
Copyright (C) Andrew Bartlett 2002
|
|
Copyright (C) Stefan (metze) Metzmacher 2002
|
|
Copyright (C) Jelmer Vernooij 2002
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
*/
|
|
|
|
#include "includes.h"
|
|
|
|
#undef DBGC_CLASS
|
|
#define DBGC_CLASS DBGC_SAM
|
|
|
|
/* sam group get functions */
|
|
|
|
NTSTATUS sam_get_group_sid(const SAM_GROUP_HANDLE *group, const DOM_SID **sid)
|
|
{
|
|
SAM_ASSERT(group && sid);
|
|
|
|
*sid = &(group->private.sid);
|
|
|
|
return NT_STATUS_OK;
|
|
}
|
|
|
|
NTSTATUS sam_get_group_ctrl(const SAM_GROUP_HANDLE *group, uint32 *group_ctrl)
|
|
{
|
|
SAM_ASSERT(group && group_ctrl);
|
|
|
|
*group_ctrl = group->private.group_ctrl;
|
|
|
|
return NT_STATUS_OK;
|
|
}
|
|
|
|
NTSTATUS sam_get_group_name(const SAM_GROUP_HANDLE *group, const char **group_name)
|
|
{
|
|
SAM_ASSERT(group);
|
|
|
|
*group_name = group->private.group_name;
|
|
|
|
return NT_STATUS_OK;
|
|
|
|
}
|
|
NTSTATUS sam_get_group_comment(const SAM_GROUP_HANDLE *group, const char **group_desc)
|
|
{
|
|
SAM_ASSERT(group);
|
|
|
|
*group_desc = group->private.group_desc;
|
|
|
|
return NT_STATUS_OK;
|
|
}
|
|
|
|
/* sam group set functions */
|
|
|
|
NTSTATUS sam_set_group_sid(SAM_GROUP_HANDLE *group, const DOM_SID *sid)
|
|
{
|
|
SAM_ASSERT(group);
|
|
|
|
if (!sid)
|
|
ZERO_STRUCT(group->private.sid);
|
|
else
|
|
sid_copy(&(group->private.sid), sid);
|
|
|
|
return NT_STATUS_OK;
|
|
}
|
|
|
|
NTSTATUS sam_set_group_group_ctrl(SAM_GROUP_HANDLE *group, uint32 group_ctrl)
|
|
{
|
|
SAM_ASSERT(group);
|
|
|
|
group->private.group_ctrl = group_ctrl;
|
|
|
|
return NT_STATUS_OK;
|
|
}
|
|
|
|
NTSTATUS sam_set_group_name(SAM_GROUP_HANDLE *group, const char *group_name)
|
|
{
|
|
SAM_ASSERT(group);
|
|
|
|
group->private.group_name = talloc_strdup(group->mem_ctx, group_name);
|
|
|
|
return NT_STATUS_OK;
|
|
}
|
|
|
|
NTSTATUS sam_set_group_description(SAM_GROUP_HANDLE *group, const char *group_desc)
|
|
{
|
|
SAM_ASSERT(group);
|
|
|
|
group->private.group_desc = talloc_strdup(group->mem_ctx, group_desc);
|
|
|
|
return NT_STATUS_OK;
|
|
|
|
}
|