Skip to content

Commit 7511689

Browse files
authored
iam: support modify api method (#606)
1 parent 62fa781 commit 7511689

File tree

12 files changed

+50
-17
lines changed

12 files changed

+50
-17
lines changed

middleware/flow/src/flow_config.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use bios_basic::{process::ci_processor::AppKeyConfig, rbum::rbum_config::RbumConfig};
2-
use bios_sdk_invoke::{invoke_config::InvokeConfig, clients::event_client::EventTopicConfig};
2+
use bios_sdk_invoke::{clients::event_client::EventTopicConfig, invoke_config::InvokeConfig};
33
use lazy_static::lazy_static;
44
use serde::{Deserialize, Serialize};
55
use std::{fmt::Debug, sync::Mutex};

middleware/flow/src/flow_initializer.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@ use tardis::{
1010
basic::{dto::TardisContext, field::TrimString, result::TardisResult},
1111
db::{reldb_client::TardisActiveModel, sea_orm::sea_query::Table},
1212
log::info,
13+
tokio,
1314
web::web_server::TardisWebServer,
14-
TardisFuns, TardisFunsInst, tokio,
15+
TardisFuns, TardisFunsInst,
1516
};
1617

1718
use crate::{

spi/spi-log/src/dto/log_item_dto.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use bios_basic::{dto::BasicQueryCondInfo, basic_enumeration::BasicQueryOpKind};
1+
use bios_basic::{basic_enumeration::BasicQueryOpKind, dto::BasicQueryCondInfo};
22
use serde::{Deserialize, Serialize};
33
use tardis::{
44
basic::field::TrimString,

spi/spi-log/src/serv/pg/log_pg_item_serv.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use tardis::{
77

88
use bios_basic::{basic_enumeration::BasicQueryOpKind, dto::BasicQueryCondInfo, helper::db_helper, spi::spi_funs::SpiBsInst};
99

10-
use crate::dto::log_item_dto::{LogItemAddReq, LogItemFindReq, LogItemFindResp, AdvBasicQueryCondInfo};
10+
use crate::dto::log_item_dto::{AdvBasicQueryCondInfo, LogItemAddReq, LogItemFindReq, LogItemFindResp};
1111

1212
use super::log_pg_initializer;
1313

@@ -272,7 +272,7 @@ pub async fn find(find_req: &mut LogItemFindReq, funs: &TardisFunsInst, ctx: &Ta
272272
}
273273
where_fragments.push(format!(" ( {} ) ", or_fragments.join(" OR ")));
274274
}
275-
275+
276276
// advanced query
277277
let mut sql_adv_query = vec![];
278278
if let Some(adv_query) = &find_req.adv_query {

spi/spi-search/src/serv/pg/search_pg_item_serv.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ pub async fn add(add_req: &mut SearchItemAddReq, _funs: &TardisFunsInst, ctx: &T
3333
params.push(Value::from(format!(
3434
"{},{}",
3535
add_req.title.as_str(),
36-
generate_word_combinations(to_pinyin_vec(add_req.title.as_str(), Pinyin::plain)).join(",")
36+
generate_word_combinations(to_pinyin_vec(add_req.title.as_str(), Pinyin::plain)).join(" ")
3737
)));
3838
params.push(Value::from(add_req.content.as_str()));
3939
params.push(Value::from(add_req.content.as_str()));
@@ -93,7 +93,7 @@ pub async fn modify(tag: &str, key: &str, modify_req: &mut SearchItemModifyReq,
9393
params.push(Value::from(format!(
9494
"{},{}",
9595
title,
96-
generate_word_combinations(to_pinyin_vec(title, Pinyin::plain)).join(",")
96+
generate_word_combinations(to_pinyin_vec(title, Pinyin::plain)).join(" ")
9797
)));
9898
};
9999
if let Some(content) = &modify_req.content {

spi/spi-stats/src/serv/pg/stats_pg_metric_serv.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -241,9 +241,7 @@ pub async fn query_metrics(query_req: &StatsQueryMetricsReq, funs: &TardisFunsIn
241241
let mut params = if let Some(own_paths) = &query_req.own_paths {
242242
own_paths.iter().map(Value::from).collect_vec()
243243
} else {
244-
vec![
245-
Value::from(format!("{}%", ctx.own_paths)),
246-
]
244+
vec![Value::from(format!("{}%", ctx.own_paths))]
247245
};
248246
let own_paths_count = params.len();
249247
params.push(Value::from(query_req.start_time));
@@ -482,7 +480,11 @@ pub async fn query_metrics(query_req: &StatsQueryMetricsReq, funs: &TardisFunsIn
482480
let own_paths_placeholder = (1..=own_paths_count).map(|idx| format!("${}", idx)).collect::<Vec<String>>().join(", ");
483481
let create_time_placeholder = format!("${}", own_paths_count + 1);
484482
let end_time_placeholder = format!("${}", own_paths_count + 2);
485-
let filter_own_paths = if query_req.own_paths.is_some() { format!("fact.own_paths IN ({own_paths_placeholder})") } else { "fact.own_paths LIKE $1".to_string() };
483+
let filter_own_paths = if query_req.own_paths.is_some() {
484+
format!("fact.own_paths IN ({own_paths_placeholder})")
485+
} else {
486+
"fact.own_paths LIKE $1".to_string()
487+
};
486488
let final_sql = format!(
487489
r#"SELECT {sql_part_outer_selects}{}
488490
FROM (

spi/spi-stats/tests/test_stats_record.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ pub async fn test_fact_record(client: &mut TestHttpClient) -> TardisResult<()> {
212212
// std::io::stdin().read_line(&mut Default::default()).unwrap();
213213
let latest_req_2: Value = client.get("/ci/record/fact/req/latest/rec2").await;
214214
assert!(!latest_req_2.is_null());
215-
let latest_reqs: Vec<Value> = client.get("/ci/record/fact/req/latest/?record_keys=rec1,rec2").await;
215+
let latest_reqs: Vec<Value> = client.get("/ci/record/fact/req/latest?record_keys=rec1,rec2").await;
216216
assert!(latest_reqs.len() == 2);
217217
sleep(Duration::from_millis(1000)).await;
218218
let _: Void = client

support/iam/src/basic/dto/iam_res_dto.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ pub struct IamResModifyReq {
6262
pub name: Option<TrimString>,
6363
#[oai(validator(min_length = "2", max_length = "255"))]
6464
pub code: Option<TrimString>,
65+
pub method: Option<TrimString>,
6566
pub icon: Option<String>,
6667
pub sort: Option<i64>,
6768
pub hide: Option<bool>,

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

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,9 +122,16 @@ impl RbumItemCrudOperation<iam_res::ActiveModel, IamResAddReq, IamResModifyReq,
122122
}
123123

124124
async fn before_modify_item(id: &str, modify_req: &mut IamResModifyReq, funs: &TardisFunsInst, ctx: &TardisContext) -> TardisResult<()> {
125-
if modify_req.code.is_some() {
125+
if modify_req.code.is_some() || modify_req.method.is_some() {
126126
let item = Self::get_item(id, &IamResFilterReq::default(), funs, ctx).await?;
127-
modify_req.encoding(item.kind.clone(), item.method.clone());
127+
modify_req.encoding(
128+
item.kind.clone(),
129+
if let Some(method) = &modify_req.method {
130+
method.to_string()
131+
} else {
132+
item.method.clone()
133+
},
134+
);
128135
}
129136
Ok(())
130137
}
@@ -146,6 +153,7 @@ impl RbumItemCrudOperation<iam_res::ActiveModel, IamResAddReq, IamResModifyReq,
146153
&& modify_req.sort.is_none()
147154
&& modify_req.hide.is_none()
148155
&& modify_req.action.is_none()
156+
&& modify_req.method.is_none()
149157
&& modify_req.crypto_req.is_none()
150158
&& modify_req.crypto_resp.is_none()
151159
&& modify_req.double_auth.is_none()
@@ -168,6 +176,9 @@ impl RbumItemCrudOperation<iam_res::ActiveModel, IamResAddReq, IamResModifyReq,
168176
if let Some(action) = &modify_req.action {
169177
iam_res.action = Set(action.to_string());
170178
}
179+
if let Some(method) = &modify_req.method {
180+
iam_res.method = Set(method.to_string());
181+
}
171182
if let Some(crypto_req) = modify_req.crypto_req {
172183
iam_res.crypto_req = Set(crypto_req);
173184
}
@@ -200,7 +211,7 @@ impl RbumItemCrudOperation<iam_res::ActiveModel, IamResAddReq, IamResModifyReq,
200211
ctx,
201212
)
202213
.await?;
203-
if modify_req.crypto_req.is_some() || modify_req.crypto_resp.is_some() || modify_req.double_auth.is_some() {
214+
if modify_req.crypto_req.is_some() || modify_req.crypto_resp.is_some() || modify_req.double_auth.is_some() || modify_req.method.is_some() {
204215
IamResCacheServ::add_or_modify_res_rel(
205216
&res.code,
206217
&res.method,

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ impl IamSetServ {
261261
let mut kind = item.kind;
262262
if kind == IamSetKind::Apps.to_string() {
263263
SpiKvClient::add_or_modify_key_name(
264-
&format!("{}:{}", funs.conf::<IamConfig>().spi.kv_apps_prefix.clone(), &set_cate_id.clone()),
264+
&format!("{}:{}", funs.conf::<IamConfig>().spi.kv_apps_prefix.clone(), &set_cate_id),
265265
&set_cate_item.name.clone(),
266266
funs,
267267
ctx,
@@ -913,7 +913,7 @@ impl IamSetServ {
913913
)
914914
.await?;
915915
for (id, name) in id_and_names {
916-
SpiKvClient::add_or_modify_key_name(&format!("{}:{}", funs.conf::<IamConfig>().spi.kv_tenant_prefix.clone(), id), &name, funs, ctx).await?;
916+
SpiKvClient::add_or_modify_key_name(&format!("{}:{}", funs.conf::<IamConfig>().spi.kv_apps_prefix.clone(), id), &name, funs, ctx).await?;
917917
}
918918
}
919919

support/iam/tests/test_cc_res.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ async fn test_single_level(context: &TardisContext, another_context: &TardisCont
108108
&mut IamResModifyReq {
109109
name: Some(TrimString("测试资源".to_string())),
110110
icon: Some("/icon/icon.png".to_string()),
111+
code: None,
111112
sort: None,
112113
hide: None,
113114
action: None,
@@ -131,6 +132,7 @@ async fn test_single_level(context: &TardisContext, another_context: &TardisCont
131132
&mut IamResModifyReq {
132133
name: Some(TrimString("测试资源".to_string())),
133134
icon: Some("/icon/icon.png".to_string()),
135+
code: None,
134136
sort: None,
135137
hide: None,
136138
action: None,
@@ -420,6 +422,7 @@ pub async fn test_multi_level_by_sys_context(
420422
&mut IamResModifyReq {
421423
name: Some(TrimString("res_sys_modify".to_string())),
422424
icon: None,
425+
code: None,
423426
sort: None,
424427
hide: None,
425428
action: None,
@@ -440,6 +443,7 @@ pub async fn test_multi_level_by_sys_context(
440443
&res_t1_id,
441444
&mut IamResModifyReq {
442445
name: Some(TrimString("res_t1_modify".to_string())),
446+
code: None,
443447
icon: None,
444448
sort: None,
445449
hide: None,
@@ -461,6 +465,7 @@ pub async fn test_multi_level_by_sys_context(
461465
&res_t2_a1_id,
462466
&mut IamResModifyReq {
463467
name: Some(TrimString("res_t2_a1_modify".to_string())),
468+
code: None,
464469
icon: None,
465470
sort: None,
466471
hide: None,
@@ -589,6 +594,7 @@ pub async fn test_multi_level_by_tenant_context(
589594
&mut IamResModifyReq {
590595
name: Some(TrimString("res_sys_modify".to_string())),
591596
icon: None,
597+
code: None,
592598
sort: None,
593599
hide: None,
594600
action: None,
@@ -611,6 +617,7 @@ pub async fn test_multi_level_by_tenant_context(
611617
&mut IamResModifyReq {
612618
name: Some(TrimString("res_sys_global_modify".to_string())),
613619
icon: None,
620+
code: None,
614621
sort: None,
615622
hide: None,
616623
action: None,
@@ -633,6 +640,7 @@ pub async fn test_multi_level_by_tenant_context(
633640
&mut IamResModifyReq {
634641
name: Some(TrimString("res_t1_modify".to_string())),
635642
icon: None,
643+
code: None,
636644
sort: None,
637645
hide: None,
638646
action: None,
@@ -655,6 +663,7 @@ pub async fn test_multi_level_by_tenant_context(
655663
&mut IamResModifyReq {
656664
name: Some(TrimString("res_t2_modify".to_string())),
657665
icon: None,
666+
code: None,
658667
sort: None,
659668
hide: None,
660669
action: None,
@@ -676,6 +685,7 @@ pub async fn test_multi_level_by_tenant_context(
676685
&mut IamResModifyReq {
677686
name: Some(TrimString("res_t2_a1_modify".to_string())),
678687
icon: None,
688+
code: None,
679689
sort: None,
680690
hide: None,
681691
action: None,
@@ -793,6 +803,7 @@ pub async fn test_multi_level_by_app_context(
793803
&mut IamResModifyReq {
794804
name: Some(TrimString("res_sys_modify".to_string())),
795805
icon: None,
806+
code: None,
796807
sort: None,
797808
hide: None,
798809
action: None,
@@ -815,6 +826,7 @@ pub async fn test_multi_level_by_app_context(
815826
&mut IamResModifyReq {
816827
name: Some(TrimString("res_t1_modify".to_string())),
817828
icon: None,
829+
code: None,
818830
sort: None,
819831
hide: None,
820832
action: None,
@@ -837,6 +849,7 @@ pub async fn test_multi_level_by_app_context(
837849
&mut IamResModifyReq {
838850
name: Some(TrimString("res_t2_tenant_modify".to_string())),
839851
icon: None,
852+
code: None,
840853
sort: None,
841854
hide: None,
842855
action: None,
@@ -859,6 +872,7 @@ pub async fn test_multi_level_by_app_context(
859872
&mut IamResModifyReq {
860873
name: Some(TrimString("res_t2_modify".to_string())),
861874
icon: None,
875+
code: None,
862876
sort: None,
863877
hide: None,
864878
action: None,
@@ -881,6 +895,7 @@ pub async fn test_multi_level_by_app_context(
881895
&mut IamResModifyReq {
882896
name: Some(TrimString("res_t2_a2_modify".to_string())),
883897
icon: None,
898+
code: None,
884899
sort: None,
885900
hide: None,
886901
action: None,
@@ -903,6 +918,7 @@ pub async fn test_multi_level_by_app_context(
903918
&mut IamResModifyReq {
904919
name: Some(TrimString("res_t2_a1_modify".to_string())),
905920
icon: None,
921+
code: None,
906922
sort: None,
907923
hide: None,
908924
action: None,

support/iam/tests/test_key_cache.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -918,6 +918,7 @@ pub async fn test(system_admin_context: &TardisContext) -> TardisResult<()> {
918918
&mut IamResModifyReq {
919919
name: None,
920920
icon: None,
921+
code: None,
921922
sort: None,
922923
hide: None,
923924
action: None,
@@ -943,6 +944,7 @@ pub async fn test(system_admin_context: &TardisContext) -> TardisResult<()> {
943944
&mut IamResModifyReq {
944945
name: None,
945946
icon: None,
947+
code: None,
946948
sort: None,
947949
hide: None,
948950
action: None,

0 commit comments

Comments
 (0)