return dom->methods->unixids_to_sids(dom, maps);
}
-
-NTSTATUS idmap_backends_sid_to_unixid(const char *domain, struct id_map *id)
-{
- struct idmap_domain *dom;
- struct id_map *maps[2];
-
- DEBUG(10, ("idmap_backends_sid_to_unixid: domain = '%s', sid = [%s]\n",
- domain?domain:"NULL", sid_string_dbg(id->sid)));
-
- maps[0] = id;
- maps[1] = NULL;
-
- if (sid_check_is_in_builtin(id->sid)
- || (sid_check_is_in_our_sam(id->sid)))
- {
- NTSTATUS status;
-
- DEBUG(10, ("asking passdb...\n"));
-
- dom = idmap_passdb_domain(NULL);
- if (dom == NULL) {
- return NT_STATUS_NONE_MAPPED;
- }
- status = dom->methods->sids_to_unixids(dom, maps);
-
- if (NT_STATUS_IS_OK(status) && id->status == ID_MAPPED) {
- return status;
- }
-
- DEBUG(10, ("passdb could not map.\n"));
-
- return NT_STATUS_NONE_MAPPED;
- }
-
- dom = idmap_find_domain(domain);
- if (dom == NULL) {
- return NT_STATUS_NONE_MAPPED;
- }
-
- return dom->methods->sids_to_unixids(dom, maps);
-}