1
0
mirror of https://github.com/samba-team/samba.git synced 2025-08-04 08:22:08 +03:00

netapi: use libnetapi_samr_lookup_and_open_alias().

Guenther
(This used to be commit d8fad6bf44)
This commit is contained in:
Günther Deschner
2008-06-03 00:42:00 +02:00
parent 4fd700ca07
commit dbb8e163af

View File

@ -82,7 +82,6 @@ WERROR NetLocalGroupAdd_r(struct libnetapi_ctx *ctx,
WERROR werr;
struct lsa_String lsa_account_name;
struct policy_handle connect_handle, domain_handle, builtin_handle, alias_handle;
struct samr_Ids user_rids, name_types;
struct dom_sid2 *domain_sid = NULL;
uint32_t rid;
@ -136,25 +135,18 @@ WERROR NetLocalGroupAdd_r(struct libnetapi_ctx *ctx,
init_lsa_String(&lsa_account_name, alias_name);
status = rpccli_samr_LookupNames(pipe_cli, ctx,
werr = libnetapi_samr_lookup_and_open_alias(ctx, pipe_cli,
&builtin_handle,
1,
&lsa_account_name,
&user_rids,
&name_types);
if (NT_STATUS_IS_OK(status)) {
status = rpccli_samr_OpenAlias(pipe_cli, ctx,
&builtin_handle,
SAMR_ALIAS_ACCESS_LOOKUP_INFO,
user_rids.ids[0],
&alias_handle);
if (NT_STATUS_IS_OK(status)) {
rpccli_samr_Close(pipe_cli, ctx, &builtin_handle);
if (W_ERROR_IS_OK(werr)) {
werr = WERR_ALIAS_EXISTS;
goto done;
}
}
rpccli_samr_Close(pipe_cli, ctx, &builtin_handle);
werr = libnetapi_samr_open_domain(ctx, pipe_cli,
SAMR_ACCESS_ENUM_DOMAINS |
@ -241,7 +233,6 @@ WERROR NetLocalGroupDel_r(struct libnetapi_ctx *ctx,
WERROR werr;
struct lsa_String lsa_account_name;
struct policy_handle connect_handle, domain_handle, builtin_handle, alias_handle;
struct samr_Ids user_rids, name_types;
struct dom_sid2 *domain_sid = NULL;
if (!r->in.group_name) {
@ -275,26 +266,18 @@ WERROR NetLocalGroupDel_r(struct libnetapi_ctx *ctx,
init_lsa_String(&lsa_account_name, r->in.group_name);
status = rpccli_samr_LookupNames(pipe_cli, ctx,
werr = libnetapi_samr_lookup_and_open_alias(ctx, pipe_cli,
&builtin_handle,
1,
&lsa_account_name,
&user_rids,
&name_types);
if (NT_STATUS_IS_OK(status)) {
status = rpccli_samr_OpenAlias(pipe_cli, ctx,
&builtin_handle,
SEC_STD_DELETE,
user_rids.ids[0],
&alias_handle);
if (NT_STATUS_IS_OK(status)) {
rpccli_samr_Close(pipe_cli, ctx, &builtin_handle);
goto delete_alias;
}
}
rpccli_samr_Close(pipe_cli, ctx, &builtin_handle);
if (W_ERROR_IS_OK(werr)) {
goto delete_alias;
}
werr = libnetapi_samr_open_domain(ctx, pipe_cli,
SAMR_ACCESS_ENUM_DOMAINS |
SAMR_ACCESS_OPEN_DOMAIN,
@ -307,29 +290,19 @@ WERROR NetLocalGroupDel_r(struct libnetapi_ctx *ctx,
goto done;
}
status = rpccli_samr_LookupNames(pipe_cli, ctx,
werr = libnetapi_samr_lookup_and_open_alias(ctx, pipe_cli,
&domain_handle,
1,
&lsa_account_name,
&user_rids,
&name_types);
if (!NT_STATUS_IS_OK(status)) {
werr = ntstatus_to_werror(status);
goto done;
}
status = rpccli_samr_OpenAlias(pipe_cli, ctx,
&domain_handle,
SEC_STD_DELETE,
user_rids.ids[0],
&alias_handle);
if (!NT_STATUS_IS_OK(status)) {
werr = ntstatus_to_werror(status);
goto done;
}
rpccli_samr_Close(pipe_cli, ctx, &domain_handle);
if (!W_ERROR_IS_OK(werr)) {
goto done;
}
delete_alias:
status = rpccli_samr_DeleteDomAlias(pipe_cli, ctx,
&alias_handle);
@ -425,7 +398,6 @@ WERROR NetLocalGroupGetInfo_r(struct libnetapi_ctx *ctx,
WERROR werr;
struct lsa_String lsa_account_name;
struct policy_handle connect_handle, domain_handle, builtin_handle, alias_handle;
struct samr_Ids user_rids, name_types;
struct dom_sid2 *domain_sid = NULL;
union samr_AliasInfo *alias_info = NULL;
@ -469,26 +441,18 @@ WERROR NetLocalGroupGetInfo_r(struct libnetapi_ctx *ctx,
init_lsa_String(&lsa_account_name, r->in.group_name);
status = rpccli_samr_LookupNames(pipe_cli, ctx,
werr = libnetapi_samr_lookup_and_open_alias(ctx, pipe_cli,
&builtin_handle,
1,
&lsa_account_name,
&user_rids,
&name_types);
if (NT_STATUS_IS_OK(status)) {
status = rpccli_samr_OpenAlias(pipe_cli, ctx,
&builtin_handle,
SAMR_ALIAS_ACCESS_LOOKUP_INFO,
user_rids.ids[0],
&alias_handle);
if (NT_STATUS_IS_OK(status)) {
rpccli_samr_Close(pipe_cli, ctx, &builtin_handle);
goto query_alias;
}
}
rpccli_samr_Close(pipe_cli, ctx, &builtin_handle);
if (W_ERROR_IS_OK(werr)) {
goto query_alias;
}
werr = libnetapi_samr_open_domain(ctx, pipe_cli,
SAMR_ACCESS_ENUM_DOMAINS |
SAMR_ACCESS_OPEN_DOMAIN,
@ -501,29 +465,18 @@ WERROR NetLocalGroupGetInfo_r(struct libnetapi_ctx *ctx,
goto done;
}
status = rpccli_samr_LookupNames(pipe_cli, ctx,
werr = libnetapi_samr_lookup_and_open_alias(ctx, pipe_cli,
&domain_handle,
1,
&lsa_account_name,
&user_rids,
&name_types);
if (!NT_STATUS_IS_OK(status)) {
werr = ntstatus_to_werror(status);
goto done;
}
status = rpccli_samr_OpenAlias(pipe_cli, ctx,
&domain_handle,
SAMR_ALIAS_ACCESS_LOOKUP_INFO,
user_rids.ids[0],
&alias_handle);
if (!NT_STATUS_IS_OK(status)) {
werr = ntstatus_to_werror(status);
goto done;
}
rpccli_samr_Close(pipe_cli, ctx, &domain_handle);
if (!W_ERROR_IS_OK(werr)) {
goto done;
}
query_alias:
status = rpccli_samr_QueryAliasInfo(pipe_cli, ctx,
&alias_handle,
@ -620,7 +573,6 @@ WERROR NetLocalGroupSetInfo_r(struct libnetapi_ctx *ctx,
WERROR werr;
struct lsa_String lsa_account_name;
struct policy_handle connect_handle, domain_handle, builtin_handle, alias_handle;
struct samr_Ids user_rids, name_types;
struct dom_sid2 *domain_sid = NULL;
enum samr_AliasInfoEnum alias_level;
union samr_AliasInfo *alias_info = NULL;
@ -665,26 +617,18 @@ WERROR NetLocalGroupSetInfo_r(struct libnetapi_ctx *ctx,
init_lsa_String(&lsa_account_name, r->in.group_name);
status = rpccli_samr_LookupNames(pipe_cli, ctx,
werr = libnetapi_samr_lookup_and_open_alias(ctx, pipe_cli,
&builtin_handle,
1,
&lsa_account_name,
&user_rids,
&name_types);
if (NT_STATUS_IS_OK(status)) {
status = rpccli_samr_OpenAlias(pipe_cli, ctx,
&builtin_handle,
SAMR_ALIAS_ACCESS_SET_INFO,
user_rids.ids[0],
&alias_handle);
if (NT_STATUS_IS_OK(status)) {
rpccli_samr_Close(pipe_cli, ctx, &builtin_handle);
goto set_alias;
}
}
rpccli_samr_Close(pipe_cli, ctx, &builtin_handle);
if (W_ERROR_IS_OK(werr)) {
goto set_alias;
}
werr = libnetapi_samr_open_domain(ctx, pipe_cli,
SAMR_ACCESS_ENUM_DOMAINS |
SAMR_ACCESS_OPEN_DOMAIN,
@ -696,24 +640,12 @@ WERROR NetLocalGroupSetInfo_r(struct libnetapi_ctx *ctx,
goto done;
}
status = rpccli_samr_LookupNames(pipe_cli, ctx,
werr = libnetapi_samr_lookup_and_open_alias(ctx, pipe_cli,
&domain_handle,
1,
&lsa_account_name,
&user_rids,
&name_types);
if (!NT_STATUS_IS_OK(status)) {
werr = ntstatus_to_werror(status);
goto done;
}
status = rpccli_samr_OpenAlias(pipe_cli, ctx,
&domain_handle,
SAMR_ALIAS_ACCESS_SET_INFO,
user_rids.ids[0],
&alias_handle);
if (!NT_STATUS_IS_OK(status)) {
werr = ntstatus_to_werror(status);
if (!W_ERROR_IS_OK(werr)) {
goto done;
}