diff options
Diffstat (limited to '')
| -rw-r--r-- | crates/secd/src/lib.rs | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/crates/secd/src/lib.rs b/crates/secd/src/lib.rs index eb5d33d..c84ce44 100644 --- a/crates/secd/src/lib.rs +++ b/crates/secd/src/lib.rs @@ -3,7 +3,7 @@ mod client; mod util; use async_trait::async_trait; -use auth::z::Relationship; +use auth::z::{Namespace, Relation, Relationship, Subject}; use client::{ email::{EmailMessenger, EmailMessengerError, LocalMailer, Sendgrid}, spice::{Spice, SpiceError}, @@ -145,9 +145,13 @@ pub trait Authentication { #[async_trait] pub trait Authorization { async fn check(&self, r: &Relationship) -> Result<bool, SecdError>; - async fn expand(&self) -> Result<(), SecdError>; - async fn read(&self) -> Result<(), SecdError>; - async fn watch(&self) -> Result<(), SecdError>; + async fn check_list_namespaces( + &self, + ns: &Namespace, + subj: &Subject, + relation: &Relation, + ) -> Result<Vec<Uuid>, SecdError>; + async fn check_list_subjects(&self) -> Result<Vec<i32>, SecdError>; async fn write(&self, relationships: &[Relationship]) -> Result<(), SecdError>; } |
