Skip to content

Commit 32c6572

Browse files
author
ljl
committed
iam:fix set item.
1 parent 1132b8b commit 32c6572

File tree

4 files changed

+239
-5
lines changed

4 files changed

+239
-5
lines changed

support/iam/src/console_interface/api/iam_ci_account_api.rs

Lines changed: 58 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
use bios_basic::rbum::dto::rbum_filer_dto::{RbumBasicFilterReq, RbumCertFilterReq, RbumItemRelFilterReq, RbumSetCateFilterReq, RbumSetItemRelFilterReq};
2-
use bios_basic::rbum::rbum_enumeration::RbumRelFromKind;
1+
use bios_basic::rbum::dto::rbum_filer_dto::{RbumBasicFilterReq, RbumCertFilterReq, RbumItemRelFilterReq, RbumSetCateFilterReq, RbumSetItemFilterReq, RbumSetItemRelFilterReq};
2+
use bios_basic::rbum::rbum_enumeration::{RbumRelFromKind, RbumSetCateLevelQueryKind};
3+
use bios_basic::rbum::serv::rbum_set_serv::RbumSetItemServ;
34
use tardis::web::context_extractor::TardisContextExtractor;
45
use tardis::web::poem_openapi;
56
use tardis::web::poem_openapi::{param::Path, param::Query};
@@ -12,8 +13,9 @@ use crate::basic::serv::iam_account_serv::IamAccountServ;
1213
use crate::basic::serv::iam_cert_serv::IamCertServ;
1314
use crate::basic::serv::iam_key_cache_serv::IamIdentCacheServ;
1415
use crate::basic::serv::iam_set_serv::IamSetServ;
16+
use crate::iam_config::IamBasicConfigApi;
1517
use crate::iam_constants;
16-
use crate::iam_enumeration::IamRelKind;
18+
use crate::iam_enumeration::{IamRelKind, IamSetKind};
1719
use bios_basic::helper::request_helper::add_remote_ip;
1820
use bios_basic::rbum::serv::rbum_cert_serv::RbumCertServ;
1921
use bios_basic::rbum::serv::rbum_crud_serv::RbumCrudOperation;
@@ -207,4 +209,57 @@ impl IamCiAccountApi {
207209
ctx.0.execute_task().await?;
208210
TardisResp::ok(result)
209211
}
212+
213+
/// Find App Set Items (Account)
214+
#[oai(path = "/apps/account/ctx", method = "get")]
215+
async fn find_items(&self, ctx: TardisContextExtractor, request: &Request) -> TardisApiResult<Vec<RbumSetItemDetailResp>> {
216+
let funs = iam_constants::get_tardis_inst();
217+
add_remote_ip(request, &ctx).await?;
218+
let ctx = IamCertServ::use_sys_or_tenant_ctx_unsafe(ctx.0)?;
219+
let set_id = IamSetServ::get_default_set_id_by_ctx(&IamSetKind::Apps, &funs, &ctx).await?;
220+
let cate_codes = RbumSetItemServ::find_detail_rbums(
221+
&RbumSetItemFilterReq {
222+
basic: RbumBasicFilterReq {
223+
with_sub_own_paths: false,
224+
..Default::default()
225+
},
226+
rel_rbum_item_disabled: Some(false),
227+
rel_rbum_set_id: Some(set_id.clone()),
228+
rel_rbum_item_ids: Some(vec![ctx.owner]),
229+
..Default::default()
230+
},
231+
None,
232+
None,
233+
&funs,
234+
&ctx,
235+
)
236+
.await?
237+
.into_iter()
238+
.map(|resp| resp.rel_rbum_item_code.unwrap_or_default())
239+
.collect();
240+
if cate_codes.is_empty() {
241+
return TardisResp::ok(vec![]);
242+
}
243+
let result = RbumSetItemServ::find_detail_rbums(
244+
&RbumSetItemFilterReq {
245+
basic: RbumBasicFilterReq {
246+
with_sub_own_paths: false,
247+
..Default::default()
248+
},
249+
rel_rbum_item_disabled: Some(false),
250+
rel_rbum_set_id: Some(set_id.clone()),
251+
rel_rbum_set_cate_sys_codes: Some(cate_codes),
252+
sys_code_query_kind: Some(RbumSetCateLevelQueryKind::CurrentAndSub),
253+
rel_rbum_item_kind_ids: Some(vec![funs.iam_basic_kind_account_id()]),
254+
..Default::default()
255+
},
256+
None,
257+
None,
258+
&funs,
259+
&ctx,
260+
)
261+
.await?;
262+
ctx.execute_task().await?;
263+
TardisResp::ok(result)
264+
}
210265
}

support/iam/src/console_interface/api/iam_ci_app_api.rs

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,16 @@
11
use crate::basic::dto::iam_app_dto::{IamAppAggAddReq, IamAppAggModifyReq};
22
use crate::basic::serv::iam_app_serv::IamAppServ;
33

4+
use crate::basic::serv::iam_cert_serv::IamCertServ;
5+
use crate::basic::serv::iam_set_serv::IamSetServ;
6+
use crate::iam_config::IamBasicConfigApi;
47
use crate::iam_constants::{self};
58
use bios_basic::process::task_processor::TaskProcessor;
9+
use bios_basic::rbum::dto::rbum_filer_dto::{RbumBasicFilterReq, RbumSetItemFilterReq};
10+
use bios_basic::rbum::dto::rbum_set_item_dto::RbumSetItemDetailResp;
11+
use bios_basic::rbum::rbum_enumeration::RbumSetCateLevelQueryKind;
12+
use bios_basic::rbum::serv::rbum_crud_serv::RbumCrudOperation;
13+
use bios_basic::rbum::serv::rbum_set_serv::RbumSetItemServ;
614
use tardis::web::context_extractor::TardisContextExtractor;
715
use tardis::web::poem_openapi;
816

@@ -48,4 +56,57 @@ impl IamCiAppApi {
4856
TardisResp::ok(None)
4957
}
5058
}
59+
60+
/// Find App Set Items (app)
61+
#[oai(path = "/apps/app/ctx", method = "get")]
62+
async fn find_items(&self, ctx: TardisContextExtractor, request: &Request) -> TardisApiResult<Vec<RbumSetItemDetailResp>> {
63+
let funs = iam_constants::get_tardis_inst();
64+
add_remote_ip(request, &ctx).await?;
65+
let ctx = IamCertServ::use_sys_or_tenant_ctx_unsafe(ctx.0)?;
66+
let set_id = IamSetServ::get_default_set_id_by_ctx(&IamSetKind::Apps, &funs, &ctx).await?;
67+
let cate_codes = RbumSetItemServ::find_detail_rbums(
68+
&RbumSetItemFilterReq {
69+
basic: RbumBasicFilterReq {
70+
with_sub_own_paths: false,
71+
..Default::default()
72+
},
73+
rel_rbum_item_disabled: Some(false),
74+
rel_rbum_set_id: Some(set_id.clone()),
75+
rel_rbum_item_ids: Some(vec![ctx.]),
76+
..Default::default()
77+
},
78+
None,
79+
None,
80+
&funs,
81+
&ctx,
82+
)
83+
.await?
84+
.into_iter()
85+
.map(|resp| resp.rel_rbum_item_code.unwrap_or_default())
86+
.collect();
87+
if cate_codes.is_empty() {
88+
return TardisResp::ok(vec![]);
89+
}
90+
let result = RbumSetItemServ::find_detail_rbums(
91+
&RbumSetItemFilterReq {
92+
basic: RbumBasicFilterReq {
93+
with_sub_own_paths: false,
94+
..Default::default()
95+
},
96+
rel_rbum_item_disabled: Some(false),
97+
rel_rbum_set_id: Some(set_id.clone()),
98+
rel_rbum_set_cate_sys_codes: Some(cate_codes),
99+
sys_code_query_kind: Some(RbumSetCateLevelQueryKind::CurrentAndSub),
100+
rel_rbum_item_kind_ids: Some(vec![funs.iam_basic_kind_app_id()]),
101+
..Default::default()
102+
},
103+
None,
104+
None,
105+
&funs,
106+
&ctx,
107+
)
108+
.await?;
109+
ctx.execute_task().await?;
110+
TardisResp::ok(result)
111+
}
51112
}

support/iam/src/console_passport/api/iam_cp_account_api.rs

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
use bios_basic::process::task_processor::TaskProcessor;
2+
use bios_basic::rbum::dto::rbum_filer_dto::{RbumSetItemFilterReq, RbumBasicFilterReq};
3+
use bios_basic::rbum::dto::rbum_set_item_dto::RbumSetItemDetailResp;
24
use bios_basic::rbum::helper::rbum_event_helper;
5+
use bios_basic::rbum::rbum_enumeration::RbumSetCateLevelQueryKind;
6+
use bios_basic::rbum::serv::rbum_crud_serv::RbumCrudOperation;
7+
use bios_basic::rbum::serv::rbum_set_serv::RbumSetItemServ;
38
use tardis::web::context_extractor::TardisContextExtractor;
49
use tardis::web::poem_openapi;
510
use tardis::web::poem_openapi::payload::Json;
@@ -9,8 +14,10 @@ use crate::basic::dto::iam_account_dto::IamAccountSelfModifyReq;
914
use crate::basic::serv::clients::iam_search_client::IamSearchClient;
1015
use crate::basic::serv::iam_account_serv::IamAccountServ;
1116
use crate::basic::serv::iam_cert_serv::IamCertServ;
17+
use crate::basic::serv::iam_set_serv::IamSetServ;
1218
use crate::console_passport::dto::iam_cp_account_dto::IamCpAccountInfoResp;
1319
use crate::console_passport::serv::iam_cp_account_serv::IamCpAccountServ;
20+
use crate::iam_config::IamBasicConfigApi;
1421
use crate::iam_constants;
1522
use bios_basic::helper::request_helper::add_remote_ip;
1623
use tardis::web::poem::Request;
@@ -46,4 +53,57 @@ impl IamCpAccountApi {
4653
ctx.0.execute_task().await?;
4754
TardisResp::ok(result)
4855
}
56+
57+
/// Find App Set Items (Account)
58+
#[oai(path = "/apps/account", method = "get")]
59+
async fn find_items(&self, ctx: TardisContextExtractor, request: &Request) -> TardisApiResult<Vec<RbumSetItemDetailResp>> {
60+
let funs = iam_constants::get_tardis_inst();
61+
add_remote_ip(request, &ctx).await?;
62+
let ctx = IamCertServ::use_sys_or_tenant_ctx_unsafe(ctx.0)?;
63+
let set_id = IamSetServ::get_default_set_id_by_ctx(&IamSetKind::Apps, &funs, &ctx).await?;
64+
let cate_codes = RbumSetItemServ::find_detail_rbums(
65+
&RbumSetItemFilterReq {
66+
basic: RbumBasicFilterReq {
67+
with_sub_own_paths: false,
68+
..Default::default()
69+
},
70+
rel_rbum_item_disabled: Some(false),
71+
rel_rbum_set_id: Some(set_id.clone()),
72+
rel_rbum_item_ids: Some(vec![ctx.owner]),
73+
..Default::default()
74+
},
75+
None,
76+
None,
77+
&funs,
78+
&ctx,
79+
)
80+
.await?
81+
.into_iter()
82+
.map(|resp| resp.rel_rbum_item_code.unwrap_or_default())
83+
.collect();
84+
if cate_codes.is_empty() {
85+
return TardisResp::ok(vec![]);
86+
}
87+
let result = RbumSetItemServ::find_detail_rbums(
88+
&RbumSetItemFilterReq {
89+
basic: RbumBasicFilterReq {
90+
with_sub_own_paths: false,
91+
..Default::default()
92+
},
93+
rel_rbum_item_disabled: Some(false),
94+
rel_rbum_set_id: Some(set_id.clone()),
95+
rel_rbum_set_cate_sys_codes: Some(cate_codes),
96+
sys_code_query_kind: Some(RbumSetCateLevelQueryKind::CurrentAndSub),
97+
rel_rbum_item_kind_ids: Some(vec![funs.iam_basic_kind_account_id()]),
98+
..Default::default()
99+
},
100+
None,
101+
None,
102+
&funs,
103+
&ctx,
104+
)
105+
.await?;
106+
ctx.execute_task().await?;
107+
TardisResp::ok(result)
108+
}
49109
}

support/iam/src/console_passport/api/iam_cp_app_api.rs

Lines changed: 60 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
11
use crate::basic::dto::iam_app_dto::IamAppSummaryResp;
22
use crate::basic::dto::iam_filer_dto::IamAppFilterReq;
33
use crate::basic::serv::iam_app_serv::IamAppServ;
4+
use crate::basic::serv::iam_cert_serv::IamCertServ;
5+
use crate::basic::serv::iam_set_serv::IamSetServ;
6+
use crate::iam_config::IamBasicConfigApi;
47
use crate::iam_constants;
58
use crate::iam_enumeration::IamRelKind;
69
use bios_basic::helper::request_helper::add_remote_ip;
7-
use bios_basic::rbum::dto::rbum_filer_dto::{RbumBasicFilterReq, RbumItemRelFilterReq};
8-
use bios_basic::rbum::rbum_enumeration::RbumRelFromKind;
10+
use bios_basic::rbum::dto::rbum_filer_dto::{RbumBasicFilterReq, RbumItemRelFilterReq, RbumSetItemFilterReq};
11+
use bios_basic::rbum::rbum_enumeration::{RbumRelFromKind, RbumSetCateLevelQueryKind};
12+
use bios_basic::rbum::serv::rbum_crud_serv::RbumCrudOperation;
913
use bios_basic::rbum::serv::rbum_item_serv::RbumItemCrudOperation;
14+
use bios_basic::rbum::serv::rbum_set_serv::RbumSetItemServ;
1015
use tardis::web::context_extractor::TardisContextExtractor;
1116
use tardis::web::poem::Request;
1217
use tardis::web::poem_openapi;
@@ -64,4 +69,57 @@ impl IamCpAppApi {
6469
ctx.0.execute_task().await?;
6570
TardisResp::ok(result)
6671
}
72+
73+
/// Find App Set Items (app)
74+
#[oai(path = "/apps/app", method = "get")]
75+
async fn find_items(&self, ctx: TardisContextExtractor, request: &Request) -> TardisApiResult<Vec<RbumSetItemDetailResp>> {
76+
let funs = iam_constants::get_tardis_inst();
77+
add_remote_ip(request, &ctx).await?;
78+
let ctx = IamCertServ::use_sys_or_tenant_ctx_unsafe(ctx.0)?;
79+
let set_id = IamSetServ::get_default_set_id_by_ctx(&IamSetKind::Apps, &funs, &ctx).await?;
80+
let cate_codes = RbumSetItemServ::find_detail_rbums(
81+
&RbumSetItemFilterReq {
82+
basic: RbumBasicFilterReq {
83+
with_sub_own_paths: false,
84+
..Default::default()
85+
},
86+
rel_rbum_item_disabled: Some(false),
87+
rel_rbum_set_id: Some(set_id.clone()),
88+
rel_rbum_item_ids: Some(vec![ctx.]),
89+
..Default::default()
90+
},
91+
None,
92+
None,
93+
&funs,
94+
&ctx,
95+
)
96+
.await?
97+
.into_iter()
98+
.map(|resp| resp.rel_rbum_item_code.unwrap_or_default())
99+
.collect();
100+
if cate_codes.is_empty() {
101+
return TardisResp::ok(vec![]);
102+
}
103+
let result = RbumSetItemServ::find_detail_rbums(
104+
&RbumSetItemFilterReq {
105+
basic: RbumBasicFilterReq {
106+
with_sub_own_paths: false,
107+
..Default::default()
108+
},
109+
rel_rbum_item_disabled: Some(false),
110+
rel_rbum_set_id: Some(set_id.clone()),
111+
rel_rbum_set_cate_sys_codes: Some(cate_codes),
112+
sys_code_query_kind: Some(RbumSetCateLevelQueryKind::CurrentAndSub),
113+
rel_rbum_item_kind_ids: Some(vec![funs.iam_basic_kind_app_id()]),
114+
..Default::default()
115+
},
116+
None,
117+
None,
118+
&funs,
119+
&ctx,
120+
)
121+
.await?;
122+
ctx.execute_task().await?;
123+
TardisResp::ok(result)
124+
}
67125
}

0 commit comments

Comments
 (0)