Files
chat-api/src/core/auth/api_key.rs
T

28 lines
482 B
Rust

use uuid::Uuid;
#[derive(Debug)]
pub struct CreateApiKeyRequest {
pub user_id: Uuid,
pub name: String,
pub roles: Vec<KeyRole>,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum KeyRole {
User,
Admin,
}
#[derive(Debug, Clone)]
pub struct AuthContext {
pub user_id: Uuid,
pub _api_key_id: Uuid,
pub roles: Vec<KeyRole>,
}
impl AuthContext {
pub fn has_role(&self, role: &KeyRole) -> bool {
self.roles.iter().any(|r| r == role)
}
}