mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-11-02 12:06:56 +08:00
feat(roles): Add caching for custom roles (#3946)
This commit is contained in:
@ -94,6 +94,7 @@ pub async fn signup(
|
||||
)
|
||||
.await?;
|
||||
let token = utils::user::generate_jwt_auth_token(&state, &user_from_db, &user_role).await?;
|
||||
utils::user_role::set_role_permissions_in_cache_by_user_role(&state, &user_role).await;
|
||||
|
||||
Ok(ApplicationResponse::Json(
|
||||
utils::user::get_dashboard_entry_response(&state, user_from_db, user_role, token)?,
|
||||
@ -121,6 +122,7 @@ pub async fn signin_without_invite_checks(
|
||||
|
||||
let user_role = user_from_db.get_role_from_db(state.clone()).await?;
|
||||
let token = utils::user::generate_jwt_auth_token(&state, &user_from_db, &user_role).await?;
|
||||
utils::user_role::set_role_permissions_in_cache_by_user_role(&state, &user_role).await;
|
||||
|
||||
Ok(ApplicationResponse::Json(
|
||||
utils::user::get_dashboard_entry_response(&state, user_from_db, user_role, token)?,
|
||||
@ -966,6 +968,8 @@ pub async fn accept_invite_from_email(
|
||||
|
||||
let token =
|
||||
utils::user::generate_jwt_auth_token(&state, &user_from_db, &update_status_result).await?;
|
||||
utils::user_role::set_role_permissions_in_cache_by_user_role(&state, &update_status_result)
|
||||
.await;
|
||||
|
||||
Ok(ApplicationResponse::Json(
|
||||
utils::user::get_dashboard_entry_response(
|
||||
@ -1044,7 +1048,7 @@ pub async fn switch_merchant_id(
|
||||
state: AppState,
|
||||
request: user_api::SwitchMerchantIdRequest,
|
||||
user_from_token: auth::UserFromToken,
|
||||
) -> UserResponse<user_api::SwitchMerchantResponse> {
|
||||
) -> UserResponse<user_api::DashboardEntryResponse> {
|
||||
if user_from_token.merchant_id == request.merchant_id {
|
||||
return Err(UserErrors::InvalidRoleOperationWithMessage(
|
||||
"User switching to same merchant id".to_string(),
|
||||
@ -1093,13 +1097,14 @@ pub async fn switch_merchant_id(
|
||||
.organization_id;
|
||||
|
||||
let token = utils::user::generate_jwt_auth_token_with_custom_role_attributes(
|
||||
state,
|
||||
&state,
|
||||
&user,
|
||||
request.merchant_id.clone(),
|
||||
org_id,
|
||||
org_id.clone(),
|
||||
user_from_token.role_id.clone(),
|
||||
)
|
||||
.await?;
|
||||
|
||||
(token, user_from_token.role_id)
|
||||
} else {
|
||||
let user_roles = state
|
||||
@ -1120,11 +1125,13 @@ pub async fn switch_merchant_id(
|
||||
.attach_printable("User doesn't have access to switch")?;
|
||||
|
||||
let token = utils::user::generate_jwt_auth_token(&state, &user, user_role).await?;
|
||||
utils::user_role::set_role_permissions_in_cache_by_user_role(&state, user_role).await;
|
||||
|
||||
(token, user_role.role_id.clone())
|
||||
};
|
||||
|
||||
Ok(ApplicationResponse::Json(
|
||||
user_api::SwitchMerchantResponse {
|
||||
user_api::DashboardEntryResponse {
|
||||
token,
|
||||
name: user.get_name(),
|
||||
email: user.get_email(),
|
||||
@ -1266,6 +1273,7 @@ pub async fn verify_email_without_invite_checks(
|
||||
.await
|
||||
.map_err(|e| logger::error!(?e));
|
||||
let token = utils::user::generate_jwt_auth_token(&state, &user_from_db, &user_role).await?;
|
||||
utils::user_role::set_role_permissions_in_cache_by_user_role(&state, &user_role).await;
|
||||
|
||||
Ok(ApplicationResponse::Json(
|
||||
utils::user::get_dashboard_entry_response(&state, user_from_db, user_role, token)?,
|
||||
|
||||
Reference in New Issue
Block a user