11use serde:: { Deserialize , Serialize } ;
2- use strum:: EnumIter ;
2+ use strum:: { AsRefStr , Display , EnumIter , EnumString } ;
33
4- use sea_orm:: prelude:: * ;
4+ use sea_orm:: { prelude:: * , FromJsonQueryResult } ;
55
66use super :: HiddenFlag ;
77
@@ -13,6 +13,64 @@ pub enum SystemActionLogAction {
1313 Login ,
1414}
1515
16+ #[ derive( Debug , Clone , PartialEq , Default , Serialize , Deserialize , FromJsonQueryResult ) ]
17+ #[ serde( rename_all = "camelCase" ) ]
18+ pub struct SysActionLogExtra {
19+ pub access_paths : Vec < AccessPolicyItem > ,
20+ }
21+
22+ #[ derive( Debug , Clone , PartialEq , Default , Serialize , Deserialize , FromJsonQueryResult ) ]
23+ pub struct AccessPolicyList ( pub Vec < AccessPolicyItemEnum > ) ;
24+
25+ #[ derive( Debug , Clone , PartialEq , Serialize , Deserialize , FromJsonQueryResult ) ]
26+ #[ serde( rename_all = "camelCase" ) ]
27+ pub struct AccessPolicyItem {
28+ pub passed : bool ,
29+ pub policy : AccessPolicyItemEnum ,
30+ }
31+
32+ #[ derive(
33+ Debug , Clone , Copy , PartialEq , Serialize , Deserialize , EnumIter , AsRefStr , EnumString , Display ,
34+ ) ]
35+ pub enum AccessPolicyItemEnum {
36+ /// 与最后一次登录 IP 相同
37+ #[ strum( serialize = "ip:same_last_ip" ) ]
38+ #[ serde( rename = "ip:same_last_ip" ) ]
39+ IpSameLastIp ,
40+ /// 对列表中有效的 IP 放行
41+ #[ strum( serialize = "ip:pass_allow_ip" ) ]
42+ #[ serde( rename = "ip:pass_allow_ip" ) ]
43+ IpPassAllowIp ,
44+ /// 对列表中禁用的 IP 拦截
45+ #[ strum( serialize = "ip:block_disallow_ip" ) ]
46+ #[ serde( rename = "ip:block_disallow_ip" ) ]
47+ IpBlockDisallowIp ,
48+ /// 与最后一次登录地区相同
49+ #[ strum( serialize = "ip:same_last_region" ) ]
50+ #[ serde( rename = "ip:same_last_region" ) ]
51+ IpSameLastRegion ,
52+ /// 对列表中有效的地区放行
53+ #[ strum( serialize = "ip:pass_allow_region" ) ]
54+ #[ serde( rename = "ip:pass_allow_region" ) ]
55+ IpPassAllowRegion ,
56+ /// 对列表中禁用的地区拦截
57+ #[ strum( serialize = "ip:block_disallow_region" ) ]
58+ #[ serde( rename = "ip:block_disallow_region" ) ]
59+ IpBlockDisallowRegion ,
60+ /// 与最后一次登录设备相同
61+ #[ strum( serialize = "dev:same_last_device" ) ]
62+ #[ serde( rename = "dev:same_last_device" ) ]
63+ DevSameLastDevice ,
64+ /// 对列表中有效的设备放行
65+ #[ strum( serialize = "dev:pass_allow_device" ) ]
66+ #[ serde( rename = "dev:pass_allow_device" ) ]
67+ DevPassAllowDevice ,
68+ /// 对列表中禁用的设备拦截
69+ #[ strum( serialize = "dev:block_disallow_device" ) ]
70+ #[ serde( rename = "dev:block_disallow_device" ) ]
71+ DevBlockDisallowDevice ,
72+ }
73+
1674#[ derive( Debug , Clone , Copy , PartialEq , Serialize , Deserialize , EnumIter , DeriveActiveEnum ) ]
1775#[ sea_orm( rs_type = "i32" , db_type = "Integer" ) ]
1876pub enum SystemUserRole {
0 commit comments