diff options
author | Michael Adam <obnox@samba.org> | 2012-11-22 18:16:31 +0100 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2012-12-03 08:48:23 +0100 |
commit | 370d62578dd171c6f898f4868f382cdddb908bcf (patch) | |
tree | 514ced38c426465fdd3881bebfc2e951ce1648a6 /source3/winbindd/idmap.c | |
parent | 150cfb4b97e2ee67ec1fa8fc379ac03d42002da9 (diff) | |
download | samba-370d62578dd171c6f898f4868f382cdddb908bcf.tar.gz samba-370d62578dd171c6f898f4868f382cdddb908bcf.tar.bz2 samba-370d62578dd171c6f898f4868f382cdddb908bcf.zip |
s3:winbindd: add idmap_find_domain_with_sid()
This will return the passdb domain if the given sid is in our sam or builtin
or is the domain sid of those domains. Otherwise it returns the idmap domain
that results from the idmap configuration.
Signed-off-by: Michael Adam <obnox@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Diffstat (limited to 'source3/winbindd/idmap.c')
-rw-r--r-- | source3/winbindd/idmap.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/source3/winbindd/idmap.c b/source3/winbindd/idmap.c index 07295e757a..065b7e67db 100644 --- a/source3/winbindd/idmap.c +++ b/source3/winbindd/idmap.c @@ -422,6 +422,22 @@ struct idmap_domain *idmap_find_domain(const char *domname) return result; } +struct idmap_domain *idmap_find_domain_with_sid(const char *domname, + const struct dom_sid *sid) +{ + idmap_init(); + + if (sid_check_is_in_builtin(sid) || + sid_check_is_builtin(sid) || + sid_check_is_in_our_sam(sid) || + sid_check_is_our_sam(sid)) + { + return idmap_passdb_domain(NULL); + } + + return idmap_find_domain(domname); +} + void idmap_close(void) { TALLOC_FREE(default_idmap_domain); |