Skip to content

Commit 6dd1b3b

Browse files
authored
iam:unbind res with api (#589)
1 parent 6404dc4 commit 6dd1b3b

File tree

2 files changed

+37
-19
lines changed

2 files changed

+37
-19
lines changed

support/iam/src/basic/serv/iam_res_serv.rs

Lines changed: 36 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -254,26 +254,21 @@ impl RbumItemCrudOperation<iam_res::ActiveModel, IamResAddReq, IamResModifyReq,
254254
}
255255

256256
async fn before_delete_item(id: &str, funs: &TardisFunsInst, ctx: &TardisContext) -> TardisResult<Option<IamResDetailResp>> {
257-
let deleted_item = Self::get_item(
258-
id,
259-
&IamResFilterReq {
260-
basic: RbumBasicFilterReq {
261-
with_sub_own_paths: true,
257+
Ok(Some(
258+
Self::get_item(
259+
id,
260+
&IamResFilterReq {
261+
basic: RbumBasicFilterReq {
262+
with_sub_own_paths: true,
263+
..Default::default()
264+
},
262265
..Default::default()
263266
},
264-
..Default::default()
265-
},
266-
funs,
267-
ctx,
268-
)
269-
.await?;
270-
if deleted_item.kind == IamResKind::Ele || deleted_item.kind == IamResKind::Menu {
271-
let delete_api_res = IamResServ::find_to_simple_rel_roles(&IamRelKind::IamResApi, id, None, None, funs, ctx).await?.into_iter().map(|rel| rel.rel_id).collect_vec();
272-
for delete_api_id in delete_api_res {
273-
IamRelServ::delete_simple_rel(&IamRelKind::IamResApi, &delete_api_id, id, funs, ctx).await?;
274-
}
275-
}
276-
Ok(Some(deleted_item))
267+
funs,
268+
ctx,
269+
)
270+
.await?,
271+
))
277272
}
278273

279274
async fn after_delete_item(_: &str, deleted_item: &Option<IamResDetailResp>, funs: &TardisFunsInst, ctx: &TardisContext) -> TardisResult<()> {
@@ -623,6 +618,29 @@ impl IamResServ {
623618
}
624619
Ok(result)
625620
}
621+
622+
pub async fn delete_res(id: &str, funs: &TardisFunsInst, ctx: &TardisContext) -> TardisResult<u64> {
623+
let item_detail = Self::get_item(
624+
id,
625+
&IamResFilterReq {
626+
basic: RbumBasicFilterReq {
627+
with_sub_own_paths: true,
628+
..Default::default()
629+
},
630+
..Default::default()
631+
},
632+
funs,
633+
ctx,
634+
)
635+
.await?;
636+
if item_detail.kind == IamResKind::Ele || item_detail.kind == IamResKind::Menu {
637+
let delete_api_res = IamResServ::find_to_simple_rel_roles(&IamRelKind::IamResApi, id, None, None, funs, ctx).await?.into_iter().map(|rel| rel.rel_id).collect_vec();
638+
for delete_api_id in delete_api_res {
639+
IamRelServ::delete_simple_rel(&IamRelKind::IamResApi, &delete_api_id, id, funs, ctx).await?;
640+
}
641+
}
642+
Self::delete_item_with_all_rels(id, funs, ctx).await
643+
}
626644
}
627645

628646
impl IamMenuServ {

support/iam/src/console_system/api/iam_cs_res_api.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ impl IamCsResApi {
106106
add_remote_ip(request, &ctx.0).await?;
107107
let mut funs = iam_constants::get_tardis_inst();
108108
funs.begin().await?;
109-
IamResServ::delete_item_with_all_rels(&id.0, &funs, &ctx.0).await?;
109+
IamResServ::delete_res(&id.0, &funs, &ctx.0).await?;
110110
funs.commit().await?;
111111
ctx.0.execute_task().await?;
112112
TardisResp::ok(Void {})

0 commit comments

Comments
 (0)