mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-30 01:27:31 +08:00
fix(users): revert using mget in authorization (#3999)
This commit is contained in:
@ -80,25 +80,19 @@ pub async fn check_user_in_blacklist<A: AppStateInfo>(
|
||||
.map(|timestamp| timestamp.map_or(false, |timestamp| timestamp > token_issued_at))
|
||||
}
|
||||
|
||||
pub async fn check_user_and_role_in_blacklist<A: AppStateInfo>(
|
||||
pub async fn check_role_in_blacklist<A: AppStateInfo>(
|
||||
state: &A,
|
||||
user_id: &str,
|
||||
role_id: &str,
|
||||
token_expiry: u64,
|
||||
) -> RouterResult<bool> {
|
||||
let user_token = format!("{}{}", USER_BLACKLIST_PREFIX, user_id);
|
||||
let role_token = format!("{}{}", ROLE_BLACKLIST_PREFIX, role_id);
|
||||
let token = format!("{}{}", ROLE_BLACKLIST_PREFIX, role_id);
|
||||
let token_issued_at = expiry_to_i64(token_expiry - JWT_TOKEN_TIME_IN_SECS)?;
|
||||
let redis_conn = get_redis_connection(state)?;
|
||||
|
||||
Ok(redis_conn
|
||||
.get_multiple_keys::<Vec<&str>, i64>(vec![user_token.as_str(), role_token.as_str()])
|
||||
redis_conn
|
||||
.get_key::<Option<i64>>(token.as_str())
|
||||
.await
|
||||
.change_context(ApiErrorResponse::InternalServerError)?
|
||||
.into_iter()
|
||||
.max()
|
||||
.flatten()
|
||||
.map_or(false, |timestamp| timestamp > token_issued_at))
|
||||
.change_context(ApiErrorResponse::InternalServerError)
|
||||
.map(|timestamp| timestamp.map_or(false, |timestamp| timestamp > token_issued_at))
|
||||
}
|
||||
|
||||
#[cfg(feature = "email")]
|
||||
@ -156,7 +150,10 @@ impl BlackList for AuthToken {
|
||||
where
|
||||
A: AppStateInfo + Sync,
|
||||
{
|
||||
check_user_and_role_in_blacklist(state, &self.user_id, &self.role_id, self.exp).await
|
||||
Ok(
|
||||
check_user_in_blacklist(state, &self.user_id, self.exp).await?
|
||||
|| check_role_in_blacklist(state, &self.role_id, self.exp).await?,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user