summaryrefslogtreecommitdiff
path: root/source3/include/passdb.h
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2011-09-27 17:50:51 +0200
committerGünther Deschner <gd@samba.org>2011-10-14 12:07:24 +0200
commitc6964c6b3eb326d8f72e5d3ccecb87ad142ac9f6 (patch)
treebc02328d761fc9f53422da48e3b3dba3e2fb36f0 /source3/include/passdb.h
parent06aec034aeba625b0dddbe490af51cb8efd6568c (diff)
downloadsamba-c6964c6b3eb326d8f72e5d3ccecb87ad142ac9f6.tar.gz
samba-c6964c6b3eb326d8f72e5d3ccecb87ad142ac9f6.tar.bz2
samba-c6964c6b3eb326d8f72e5d3ccecb87ad142ac9f6.zip
s3-passdb: move group mapping headers into passdb.h
Guenther
Diffstat (limited to 'source3/include/passdb.h')
-rw-r--r--source3/include/passdb.h88
1 files changed, 87 insertions, 1 deletions
diff --git a/source3/include/passdb.h b/source3/include/passdb.h
index 59eedd8563..32bb4aa9a0 100644
--- a/source3/include/passdb.h
+++ b/source3/include/passdb.h
@@ -25,7 +25,93 @@
#include "../librpc/gen_ndr/lsa.h"
-#include "mapping.h"
+/* group mapping headers */
+
+#define ENUM_ONLY_MAPPED True
+#define ENUM_ALL_MAPPED False
+
+typedef struct _GROUP_MAP {
+ struct pdb_methods *methods;
+ gid_t gid;
+ struct dom_sid sid;
+ enum lsa_SidType sid_name_use;
+ char *nt_name;
+ char *comment;
+} GROUP_MAP;
+
+/* The following definitions come from groupdb/mapping.c */
+
+NTSTATUS add_initial_entry(gid_t gid, const char *sid, enum lsa_SidType sid_name_use, const char *nt_name, const char *comment);
+bool get_domain_group_from_sid(struct dom_sid sid, GROUP_MAP *map);
+int smb_create_group(const char *unix_group, gid_t *new_gid);
+int smb_delete_group(const char *unix_group);
+int smb_set_primary_group(const char *unix_group, const char* unix_user);
+int smb_add_user_group(const char *unix_group, const char *unix_user);
+int smb_delete_user_group(const char *unix_group, const char *unix_user);
+NTSTATUS pdb_default_getgrsid(struct pdb_methods *methods, GROUP_MAP *map,
+ struct dom_sid sid);
+NTSTATUS pdb_default_getgrgid(struct pdb_methods *methods, GROUP_MAP *map,
+ gid_t gid);
+NTSTATUS pdb_default_getgrnam(struct pdb_methods *methods, GROUP_MAP *map,
+ const char *name);
+NTSTATUS pdb_default_add_group_mapping_entry(struct pdb_methods *methods,
+ GROUP_MAP *map);
+NTSTATUS pdb_default_update_group_mapping_entry(struct pdb_methods *methods,
+ GROUP_MAP *map);
+NTSTATUS pdb_default_delete_group_mapping_entry(struct pdb_methods *methods,
+ struct dom_sid sid);
+NTSTATUS pdb_default_enum_group_mapping(struct pdb_methods *methods,
+ const struct dom_sid *sid,
+ enum lsa_SidType sid_name_use,
+ GROUP_MAP ***pp_rmap,
+ size_t *p_num_entries,
+ bool unix_only);
+NTSTATUS pdb_default_create_alias(struct pdb_methods *methods,
+ const char *name, uint32 *rid);
+NTSTATUS pdb_default_delete_alias(struct pdb_methods *methods,
+ const struct dom_sid *sid);
+struct acct_info;
+NTSTATUS pdb_default_get_aliasinfo(struct pdb_methods *methods,
+ const struct dom_sid *sid,
+ struct acct_info *info);
+NTSTATUS pdb_default_set_aliasinfo(struct pdb_methods *methods,
+ const struct dom_sid *sid,
+ struct acct_info *info);
+NTSTATUS pdb_default_add_aliasmem(struct pdb_methods *methods,
+ const struct dom_sid *alias, const struct dom_sid *member);
+NTSTATUS pdb_default_del_aliasmem(struct pdb_methods *methods,
+ const struct dom_sid *alias, const struct dom_sid *member);
+NTSTATUS pdb_default_enum_aliasmem(struct pdb_methods *methods,
+ const struct dom_sid *alias, TALLOC_CTX *mem_ctx,
+ struct dom_sid **pp_members,
+ size_t *p_num_members);
+NTSTATUS pdb_default_alias_memberships(struct pdb_methods *methods,
+ TALLOC_CTX *mem_ctx,
+ const struct dom_sid *domain_sid,
+ const struct dom_sid *members,
+ size_t num_members,
+ uint32 **pp_alias_rids,
+ size_t *p_num_alias_rids);
+NTSTATUS pdb_nop_getgrsid(struct pdb_methods *methods, GROUP_MAP *map,
+ struct dom_sid sid);
+NTSTATUS pdb_nop_getgrgid(struct pdb_methods *methods, GROUP_MAP *map,
+ gid_t gid);
+NTSTATUS pdb_nop_getgrnam(struct pdb_methods *methods, GROUP_MAP *map,
+ const char *name);
+NTSTATUS pdb_nop_add_group_mapping_entry(struct pdb_methods *methods,
+ GROUP_MAP *map);
+NTSTATUS pdb_nop_update_group_mapping_entry(struct pdb_methods *methods,
+ GROUP_MAP *map);
+NTSTATUS pdb_nop_delete_group_mapping_entry(struct pdb_methods *methods,
+ struct dom_sid sid);
+NTSTATUS pdb_nop_enum_group_mapping(struct pdb_methods *methods,
+ enum lsa_SidType sid_name_use,
+ GROUP_MAP **rmap, size_t *num_entries,
+ bool unix_only);
+NTSTATUS pdb_create_builtin_alias(uint32 rid);
+
+
+/* passdb headers */
/**********************************************************************
* Masks for mappings between unix uid and gid types and