use pubky_common::capabilities::Capabilities;
use pubky_common::crypto::PublicKey;
use super::cookie::persistence::SessionEntity;
use super::grant::session::GrantSession;
#[derive(Clone, Debug)]
pub enum AuthSession {
Cookie(SessionEntity),
Grant(GrantSession),
}
impl AuthSession {
pub fn capabilities(&self) -> &Capabilities {
match self {
AuthSession::Cookie(c) => &c.capabilities,
AuthSession::Grant(b) => &b.capabilities,
}
}
pub fn user_key(&self) -> &PublicKey {
match self {
AuthSession::Cookie(c) => &c.user_pubkey,
AuthSession::Grant(b) => &b.user_key,
}
}
}