From c6964c6b3eb326d8f72e5d3ccecb87ad142ac9f6 Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Tue, 27 Sep 2011 17:50:51 +0200 Subject: s3-passdb: move group mapping headers into passdb.h Guenther --- source3/include/mapping.h | 33 ------------------ source3/include/passdb.h | 88 ++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 87 insertions(+), 34 deletions(-) delete mode 100644 source3/include/mapping.h (limited to 'source3/include') diff --git a/source3/include/mapping.h b/source3/include/mapping.h deleted file mode 100644 index 41275ff7ed..0000000000 --- a/source3/include/mapping.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Unix SMB/CIFS implementation. - * RPC Pipe client / server routines - * Copyright (C) Andrew Tridgell 1992-2000, - * Copyright (C) Jean François Micouleau 1998-2001. - * - * 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 3 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, see . - */ - -#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; - -#include "groupdb/proto.h" 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 -- cgit