feat(user): implement entity level authorization (#5819)

This commit is contained in:
Rachit Naithani
2024-09-05 23:08:35 +05:30
committed by GitHub
parent 9dd1511b4d
commit e15ea184d9
25 changed files with 806 additions and 246 deletions

View File

@ -20,6 +20,7 @@ pub mod routes {
GetRefundFilterRequest, GetRefundMetricRequest, GetSdkEventFiltersRequest,
GetSdkEventMetricRequest, ReportRequest,
};
use common_enums::EntityType;
use error_stack::{report, ResultExt};
use crate::{
@ -393,7 +394,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -429,7 +433,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -472,7 +479,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -510,7 +520,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -546,7 +559,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -589,7 +605,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -627,7 +646,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -663,7 +685,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -706,7 +731,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -738,7 +766,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -774,7 +805,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -811,7 +845,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -848,7 +885,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -876,7 +916,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -902,7 +945,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -935,7 +981,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -961,7 +1010,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -989,7 +1041,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -1015,7 +1070,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -1048,7 +1106,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -1070,7 +1131,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -1096,7 +1160,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -1126,7 +1193,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -1157,7 +1227,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -1186,7 +1259,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -1234,7 +1310,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::GenerateReport),
&auth::JWTAuth {
permission: Permission::GenerateReport,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -1280,7 +1359,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::GenerateReport),
&auth::JWTAuth {
permission: Permission::GenerateReport,
minimum_entity_level: EntityType::Organization,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -1333,7 +1415,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::GenerateReport),
&auth::JWTAuth {
permission: Permission::GenerateReport,
minimum_entity_level: EntityType::Profile,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -1381,7 +1466,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::GenerateReport),
&auth::JWTAuth {
permission: Permission::GenerateReport,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -1427,7 +1515,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::GenerateReport),
&auth::JWTAuth {
permission: Permission::GenerateReport,
minimum_entity_level: EntityType::Organization,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -1480,7 +1571,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::GenerateReport),
&auth::JWTAuth {
permission: Permission::GenerateReport,
minimum_entity_level: EntityType::Profile,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -1528,7 +1622,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::GenerateReport),
&auth::JWTAuth {
permission: Permission::GenerateReport,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -1574,7 +1671,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::GenerateReport),
&auth::JWTAuth {
permission: Permission::GenerateReport,
minimum_entity_level: EntityType::Organization,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -1626,7 +1726,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::GenerateReport),
&auth::JWTAuth {
permission: Permission::GenerateReport,
minimum_entity_level: EntityType::Profile,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -1664,7 +1767,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -1700,7 +1806,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -1743,7 +1852,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -1771,7 +1883,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -1797,7 +1912,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -1830,7 +1948,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -1859,7 +1980,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -1899,7 +2023,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -1939,7 +2066,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -1967,7 +2097,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -2000,7 +2133,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -2026,7 +2162,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -2064,7 +2203,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -2107,7 +2249,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await
@ -2143,7 +2288,10 @@ pub mod routes {
.await
.map(ApplicationResponse::Json)
},
&auth::JWTAuth(Permission::Analytics),
&auth::JWTAuth {
permission: Permission::Analytics,
minimum_entity_level: EntityType::Merchant,
},
api_locking::LockAction::NotApplicable,
))
.await