return NT_STATUS_OK;
}
-/* Lookup user information from a rid or username. */
-NTSTATUS rpc_query_user(TALLOC_CTX *mem_ctx,
- struct rpc_pipe_client *samr_pipe,
- struct policy_handle *samr_policy,
- const struct dom_sid *domain_sid,
- const struct dom_sid *user_sid,
- struct wbint_userinfo *user_info)
-{
- struct policy_handle user_policy;
- union samr_UserInfo *info = NULL;
- uint32_t user_rid;
- NTSTATUS status, result;
- struct dcerpc_binding_handle *b = samr_pipe->binding_handle;
-
- if (!sid_peek_check_rid(domain_sid, user_sid, &user_rid)) {
- return NT_STATUS_UNSUCCESSFUL;
- }
-
- /* Get user handle */
- status = dcerpc_samr_OpenUser(b,
- mem_ctx,
- samr_policy,
- SEC_FLAG_MAXIMUM_ALLOWED,
- user_rid,
- &user_policy,
- &result);
- if (!NT_STATUS_IS_OK(status)) {
- return status;
- }
- if (!NT_STATUS_IS_OK(result)) {
- return result;
- }
-
- /* Get user info */
- status = dcerpc_samr_QueryUserInfo(b,
- mem_ctx,
- &user_policy,
- 0x15,
- &info,
- &result);
- {
- NTSTATUS _result;
- dcerpc_samr_Close(b, mem_ctx, &user_policy, &_result);
- }
- if (!NT_STATUS_IS_OK(status)) {
- return status;
- }
- if (!NT_STATUS_IS_OK(result)) {
- return result;
- }
-
- sid_compose(&user_info->user_sid, domain_sid, user_rid);
- sid_compose(&user_info->group_sid, domain_sid,
- info->info21.primary_gid);
-
- user_info->acct_name = talloc_strdup(user_info,
- info->info21.account_name.string);
- if (user_info->acct_name == NULL) {
- return NT_STATUS_NO_MEMORY;
- }
-
- user_info->full_name = talloc_strdup(user_info,
- info->info21.full_name.string);
- if ((info->info21.full_name.string != NULL) &&
- (user_info->full_name == NULL))
- {
- return NT_STATUS_NO_MEMORY;
- }
-
- user_info->homedir = NULL;
- user_info->shell = NULL;
- user_info->primary_gid = (gid_t)-1;
-
- return NT_STATUS_OK;
-}
-
/* Lookup groups a user is a member of. */
NTSTATUS rpc_lookup_usergroups(TALLOC_CTX *mem_ctx,
struct rpc_pipe_client *samr_pipe,
char ***pnames,
enum lsa_SidType **ptypes);
-/* Lookup user information from a rid or username. */
-NTSTATUS rpc_query_user(TALLOC_CTX *mem_ctx,
- struct rpc_pipe_client *samr_pipe,
- struct policy_handle *samr_policy,
- const struct dom_sid *domain_sid,
- const struct dom_sid *user_sid,
- struct wbint_userinfo *user_info);
-
/* Lookup groups a user is a member of. */
NTSTATUS rpc_lookup_usergroups(TALLOC_CTX *mem_ctx,
struct rpc_pipe_client *samr_pipe,