aboutsummaryrefslogtreecommitdiff
path: root/crates/secd/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--crates/secd/src/lib.rs12
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>;
}