61a9be4
use models::admin::admin_user;
use session::Session;
use session::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<Uuid> {
session.get::<Uuid>(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::<i64>(ADMIN_PWD_VERSION_KEY)
.is_some_and(|value| value == current)
}