diff options
-rw-r--r-- | source3/groupdb/mapping.c | 48 | ||||
-rw-r--r-- | source3/passdb/pdb_guest.c | 11 |
2 files changed, 59 insertions, 0 deletions
diff --git a/source3/groupdb/mapping.c b/source3/groupdb/mapping.c index 61c0dfb4b8..b718f42f93 100644 --- a/source3/groupdb/mapping.c +++ b/source3/groupdb/mapping.c @@ -1331,3 +1331,51 @@ NTSTATUS pdb_default_enum_group_mapping(struct pdb_methods *methods, NT_STATUS_OK : NT_STATUS_UNSUCCESSFUL; } +/********************************************************************** + no ops for passdb backends that don't implement group mapping + *********************************************************************/ + +NTSTATUS pdb_nop_getgrsid(struct pdb_methods *methods, GROUP_MAP *map, + DOM_SID sid, BOOL with_priv) +{ + return NT_STATUS_UNSUCCESSFUL; +} + +NTSTATUS pdb_nop_getgrgid(struct pdb_methods *methods, GROUP_MAP *map, + gid_t gid, BOOL with_priv) +{ + return NT_STATUS_UNSUCCESSFUL; +} + +NTSTATUS pdb_nop_getgrnam(struct pdb_methods *methods, GROUP_MAP *map, + char *name, BOOL with_priv) +{ + return NT_STATUS_UNSUCCESSFUL; +} + +NTSTATUS pdb_nop_add_group_mapping_entry(struct pdb_methods *methods, + GROUP_MAP *map) +{ + return NT_STATUS_UNSUCCESSFUL; +} + +NTSTATUS pdb_nop_update_group_mapping_entry(struct pdb_methods *methods, + GROUP_MAP *map) +{ + return NT_STATUS_UNSUCCESSFUL; +} + +NTSTATUS pdb_nop_delete_group_mapping_entry(struct pdb_methods *methods, + DOM_SID sid) +{ + return NT_STATUS_UNSUCCESSFUL; +} + +NTSTATUS pdb_nop_enum_group_mapping(struct pdb_methods *methods, + enum SID_NAME_USE sid_name_use, + GROUP_MAP **rmap, int *num_entries, + BOOL unix_only, BOOL with_priv) +{ + return NT_STATUS_UNSUCCESSFUL; +} + diff --git a/source3/passdb/pdb_guest.c b/source3/passdb/pdb_guest.c index 999779b0c6..7ecfa7d4c3 100644 --- a/source3/passdb/pdb_guest.c +++ b/source3/passdb/pdb_guest.c @@ -100,6 +100,7 @@ static NTSTATUS guestsam_getsampwsid(struct pdb_methods *my_methods, SAM_ACCOUNT return guestsam_getsampwrid(my_methods, user, rid); } + NTSTATUS pdb_init_guestsam(PDB_CONTEXT *pdb_context, PDB_METHODS **pdb_method, const char *location) { NTSTATUS nt_status; @@ -118,6 +119,16 @@ NTSTATUS pdb_init_guestsam(PDB_CONTEXT *pdb_context, PDB_METHODS **pdb_method, c (*pdb_method)->getsampwnam = guestsam_getsampwnam; (*pdb_method)->getsampwsid = guestsam_getsampwsid; + /* we should do no group mapping here */ + (*pdb_method)->getgrsid = pdb_nop_getgrsid; + (*pdb_method)->getgrgid = pdb_nop_getgrgid; + (*pdb_method)->getgrnam = pdb_nop_getgrnam; + (*pdb_method)->add_group_mapping_entry = pdb_nop_add_group_mapping_entry; + (*pdb_method)->update_group_mapping_entry = pdb_nop_update_group_mapping_entry; + (*pdb_method)->delete_group_mapping_entry = pdb_nop_delete_group_mapping_entry; + (*pdb_method)->enum_group_mapping = pdb_nop_enum_group_mapping; + + /* There's not very much to initialise here */ return NT_STATUS_OK; } |