use uuid::Uuid;
use crate::type_alias::HttpRequest;
#[derive(Debug, Default, Eq, Hash, PartialEq)]
pub struct User {
pub id: Uuid,
pub name: String,
pub access_key: String,
pub secret_key: String,
pub kind: UserKind,
}
impl User {}
pub trait UserExt {
fn user(&self) -> Option<User>;
}
impl UserExt for HttpRequest {
fn user(&self) -> Option<User> {
Some(User {
id: Default::default(),
name: "".to_string(),
access_key: "".to_string(),
secret_key: "".to_string(),
kind: UserKind::Person,
})
}
}
#[derive(Debug, Default, Eq, Hash, PartialEq)]
pub enum UserKind {
#[default]
Service,
Person,
Team,
Company,
Customer,
}
#[derive(Debug, Default, Eq, Hash, PartialEq)]
pub struct Group {
pub id: Uuid,
pub name: String,
pub users: Vec<User>,
}
#[derive(Debug, Default, Eq, Hash, PartialEq)]
pub struct Role {
pub name: String,
}