Skip to content
Clone
4c83001
26 lines 738 B Rust
use session::{Session, SessionUser};
use uuid::Uuid;
use crate::errors::{ApiError, UserError};
pub const PWD_VERSION_KEY: &str = "auth:pwd_version";
pub fn session_token_key(uid: Uuid) -> String {
format!("auth:token_hash:{uid}")
}
pub fn require_uid(session: &Session) -> Result<Uuid, Box<ApiError>> {
match session.uid() {
Some(uid) => Ok(uid),
None => Err(Box::new(ApiError::from(UserError::Unauthorized))),
}
}
pub fn pwd_version_matches(session: &Session, current: Option<i64>) -> bool {
let stored = session.get::<i64>(PWD_VERSION_KEY);
match (stored, current) {
(Some(stored_ver), Some(curr_ver)) => stored_ver == curr_ver,
(None, None) => true,
_ => false,
}
}