[][src]Trait riam::PolicyManager

pub trait PolicyManager {
    fn create(&mut self, policy: Policy) -> Result<Uuid>;
fn update(&mut self, policy: &Policy) -> Result<()>;
fn delete(&mut self, id: &Uuid) -> Result<()>;
fn get(&self, id: &Uuid) -> Result<&Policy>;
fn list(&self) -> Result<Vec<Policy>>;
fn attach(&mut self, principal: &str, id: &Uuid) -> Result<()>;
fn detach(&mut self, principal: &str, id: &Uuid) -> Result<()>;
fn get_policies_for_principal(
        &self,
        principal: &str
    ) -> Result<Option<Vec<Policy>>>; }

Manage creation, storage/retrieval, and deletion of policies.

Required methods

fn create(&mut self, policy: Policy) -> Result<Uuid>

Create and store a new policy. The policy ID is returned

fn update(&mut self, policy: &Policy) -> Result<()>

Update an existing policy

fn delete(&mut self, id: &Uuid) -> Result<()>

Delete a policy

Note: This will detach the policy from all principals it is currently used by

fn get(&self, id: &Uuid) -> Result<&Policy>

Get a policy by id

fn list(&self) -> Result<Vec<Policy>>

List all policies

fn attach(&mut self, principal: &str, id: &Uuid) -> Result<()>

Attach a policy to a principal

fn detach(&mut self, principal: &str, id: &Uuid) -> Result<()>

Detach a policy from a principal

fn get_policies_for_principal(
    &self,
    principal: &str
) -> Result<Option<Vec<Policy>>>

Get all policies for a given principal

Loading content...

Implementors

impl PolicyManager for MemoryManager[src]

fn create(&mut self, policy: Policy) -> Result<Uuid>[src]

Create and store a new policy

fn update(&mut self, policy: &Policy) -> Result<()>[src]

Update an existing policy

fn get(&self, id: &Uuid) -> Result<&Policy>[src]

Get a policy by id

fn delete(&mut self, id: &Uuid) -> Result<()>[src]

Delete a policy

fn list(&self) -> Result<Vec<Policy>>[src]

List all policies

fn get_policies_for_principal(
    &self,
    principal: &str
) -> Result<Option<Vec<Policy>>>
[src]

Get all policies for a given principal

fn attach(&mut self, principal: &str, id: &Uuid) -> Result<()>[src]

Attach a policy to a principal

fn detach(&mut self, principal: &str, id: &Uuid) -> Result<()>[src]

Detach a policy from a principal

Loading content...