Trait governance_os_support::traits::RoleManager[][src]

pub trait RoleManager {
    type AccountId;
    type Role;
    fn has_role(target: &Self::AccountId, role: Self::Role) -> bool;
fn grant_role(
        target: Option<&Self::AccountId>,
        role: Self::Role
    ) -> DispatchResult;
fn revoke_role(
        target: Option<&Self::AccountId>,
        role: Self::Role
    ) -> DispatchResult; fn ensure_has_role<OuterOrigin>(
        origin: OuterOrigin,
        role: Self::Role
    ) -> Result<Self::AccountId, DispatchError>
    where
        OuterOrigin: Into<Result<RawOrigin<Self::AccountId>, OuterOrigin>>
, { ... } }

This trait can be implemented by a pallet to expose an interface for other pallets to manage their own role based access control features.

Associated Types

type AccountId[src]

type Role[src]

Loading content...

Required methods

fn has_role(target: &Self::AccountId, role: Self::Role) -> bool[src]

Should return true if traget has the role role. This can be the case if the role was granted directly to the target or if it was granted to all accounts.

fn grant_role(
    target: Option<&Self::AccountId>,
    role: Self::Role
) -> DispatchResult
[src]

Grants target the role role. If target is None then it should give the role to every account that exists or may exists on the chain.

fn revoke_role(
    target: Option<&Self::AccountId>,
    role: Self::Role
) -> DispatchResult
[src]

Should revoke the role role for target. If the role wasn’t granted to target this should error.

Loading content...

Provided methods

fn ensure_has_role<OuterOrigin>(
    origin: OuterOrigin,
    role: Self::Role
) -> Result<Self::AccountId, DispatchError> where
    OuterOrigin: Into<Result<RawOrigin<Self::AccountId>, OuterOrigin>>, 
[src]

A helper function that will require the origin to have the role granted. We provide a default implementation for it.

Loading content...

Implementors

Loading content...