initial version of idmap_ldap.c; lots of updates to come
[tprouty/samba.git] / source / sam / get_set_group.c
1 /* 
2    Unix SMB/CIFS implementation.
3    SAM_USER_HANDLE access routines
4    Copyright (C) Andrew Bartlett                        2002
5    Copyright (C) Stefan (metze) Metzmacher      2002
6    Copyright (C) Jelmer Vernooij                        2002
7       
8    This program is free software; you can redistribute it and/or modify
9    it under the terms of the GNU General Public License as published by
10    the Free Software Foundation; either version 2 of the License, or
11    (at your option) any later version.
12    
13    This program is distributed in the hope that it will be useful,
14    but WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16    GNU General Public License for more details.
17    
18    You should have received a copy of the GNU General Public License
19    along with this program; if not, write to the Free Software
20    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 */
22
23 #include "includes.h"
24
25 #undef DBGC_CLASS
26 #define DBGC_CLASS DBGC_SAM
27
28 /* sam group get functions */
29
30 NTSTATUS sam_get_group_sid(const SAM_GROUP_HANDLE *group, const DOM_SID **sid)
31 {
32         SAM_ASSERT(group && sid);
33
34         *sid = &(group->private.sid);
35
36         return NT_STATUS_OK;
37 }
38
39 NTSTATUS sam_get_group_ctrl(const SAM_GROUP_HANDLE *group, uint32 *group_ctrl)
40 {
41         SAM_ASSERT(group && group_ctrl);
42
43         *group_ctrl = group->private.group_ctrl;
44
45         return NT_STATUS_OK;
46 }
47
48 NTSTATUS sam_get_group_name(const SAM_GROUP_HANDLE *group, const char **group_name)
49 {
50         SAM_ASSERT(group);
51
52         *group_name = group->private.group_name;
53
54         return NT_STATUS_OK;
55
56 }
57 NTSTATUS sam_get_group_comment(const SAM_GROUP_HANDLE *group, const char **group_desc)
58 {
59         SAM_ASSERT(group);
60
61         *group_desc = group->private.group_desc;
62
63         return NT_STATUS_OK;
64 }
65
66 /* sam group set functions */
67
68 NTSTATUS sam_set_group_sid(SAM_GROUP_HANDLE *group, const DOM_SID *sid)
69 {
70         SAM_ASSERT(group);
71
72         if (!sid) 
73                 ZERO_STRUCT(group->private.sid);
74         else 
75                 sid_copy(&(group->private.sid), sid);
76
77         return NT_STATUS_OK;
78 }
79
80 NTSTATUS sam_set_group_group_ctrl(SAM_GROUP_HANDLE *group, uint32 group_ctrl)
81 {
82         SAM_ASSERT(group);
83
84         group->private.group_ctrl = group_ctrl;
85
86         return NT_STATUS_OK;
87 }
88
89 NTSTATUS sam_set_group_name(SAM_GROUP_HANDLE *group, const char *group_name)
90 {
91         SAM_ASSERT(group);
92
93         group->private.group_name = talloc_strdup(group->mem_ctx, group_name);
94
95         return NT_STATUS_OK;
96 }
97
98 NTSTATUS sam_set_group_description(SAM_GROUP_HANDLE *group, const char *group_desc)
99 {
100         SAM_ASSERT(group);
101
102         group->private.group_desc = talloc_strdup(group->mem_ctx, group_desc);
103
104         return NT_STATUS_OK;
105
106 }