use api_bones::audit::{Principal, PrincipalId, PrincipalKind};
use api_bones::org_id::OrgId;
use uuid::Uuid;
pub struct FakePrincipal {
id: PrincipalId,
kind: PrincipalKind,
org_path: Vec<OrgId>,
}
impl FakePrincipal {
#[must_use]
pub fn user(id: Uuid) -> Self {
Self {
id: PrincipalId::from_uuid(id),
kind: PrincipalKind::User,
org_path: Vec::new(),
}
}
#[must_use]
pub fn agent(id: Uuid) -> Self {
Self {
id: PrincipalId::from_uuid(id),
kind: PrincipalKind::Agent,
org_path: Vec::new(),
}
}
#[must_use]
pub fn org_path(mut self, path: Vec<OrgId>) -> Self {
self.org_path = path;
self
}
#[must_use]
pub fn scopes(self, _scopes: &[&str]) -> Self {
self
}
#[must_use]
pub fn build(self) -> Principal {
Principal {
id: self.id,
kind: self.kind,
org_path: self.org_path,
}
}
}