use models::admin::admin_user; use session_layer::Session; use session_layer::SessionUserMut; use uuid::Uuid; pub const ADMIN_UID_KEY: &str = "admin:uid"; pub const ADMIN_PWD_VERSION_KEY: &str = "admin:pwd_version"; pub fn admin_uid(session: &Session) -> Option { session.get::(ADMIN_UID_KEY) } pub fn apply_admin_login(session: &Session, admin: &admin_user::Model) { session.set_store(true); session.set(ADMIN_UID_KEY, admin.id); session.set(ADMIN_PWD_VERSION_KEY, admin.passwd_version); } pub fn clear_admin(session: &Session) { session.remove(ADMIN_UID_KEY); session.remove(ADMIN_PWD_VERSION_KEY); session.clear_uid(); } pub fn pwd_version_matches(session: &Session, current: i64) -> bool { session .get::(ADMIN_PWD_VERSION_KEY) .is_some_and(|value| value == current) }