Skip to main content

coil_auth/types/
access.rs

1use super::*;
2
3#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4pub struct AccessCheck {
5    pub subject: DefaultSubject,
6    pub relation: Relation,
7    pub object: Entity,
8}
9
10impl AccessCheck {
11    pub fn new(subject: DefaultSubject, relation: Relation, object: Entity) -> Self {
12        Self {
13            subject,
14            relation,
15            object,
16        }
17    }
18}
19
20impl From<AccessCheck> for CheckRequest {
21    fn from(value: AccessCheck) -> Self {
22        Self {
23            subject: value.subject.into(),
24            relation: value.relation.to_string(),
25            object: value.object.into(),
26        }
27    }
28}