pub trait RoleBasedAccessControl<AccountId> {
type MaxRolesPerPallet: Get<u32>;
type MaxPermissionsPerRole: Get<u32>;
type RoleMaxLen: Get<u32>;
type PermissionMaxLen: Get<u32>;
Show 26 methods
// Required methods
fn create_scope(pallet: IdOrVec, scope_id: ScopeId) -> DispatchResult;
fn remove_scope(pallet: IdOrVec, scope_id: ScopeId) -> DispatchResult;
fn remove_pallet_storage(pallet: IdOrVec) -> DispatchResult;
fn create_and_set_roles(
pallet: IdOrVec,
roles: Vec<Vec<u8>>
) -> Result<BoundedVec<RoleId, Self::MaxRolesPerPallet>, DispatchError>;
fn create_role(role: Vec<u8>) -> Result<RoleId, DispatchError>;
fn set_role_to_pallet(pallet: IdOrVec, role_id: RoleId) -> DispatchResult;
fn set_multiple_pallet_roles(
pallet: IdOrVec,
roles: Vec<RoleId>
) -> DispatchResult;
fn assign_role_to_user(
user: AccountId,
pallet: IdOrVec,
scope_id: &ScopeId,
role_id: RoleId
) -> DispatchResult;
fn remove_role_from_user(
user: AccountId,
pallet: IdOrVec,
scope_id: &ScopeId,
role_id: RoleId
) -> DispatchResult;
fn create_and_set_permissions(
pallet: IdOrVec,
role: RoleId,
permissions: Vec<Vec<u8>>
) -> Result<BoundedVec<PermissionId, Self::MaxPermissionsPerRole>, DispatchError>;
fn create_permission(
pallet: IdOrVec,
permissions: Vec<u8>
) -> Result<PermissionId, DispatchError>;
fn set_permission_to_role(
pallet: IdOrVec,
role: RoleId,
permission: PermissionId
) -> DispatchResult;
fn set_multiple_permissions_to_role(
pallet: IdOrVec,
role: RoleId,
permission: Vec<PermissionId>
) -> DispatchResult;
fn do_revoke_permission_from_role(
pallet: IdOrVec,
role: RoleId,
permission: PermissionId
) -> DispatchResult;
fn do_remove_permission_from_pallet(
pallet: IdOrVec,
permission: PermissionId
) -> DispatchResult;
fn is_authorized(
user: AccountId,
pallet: IdOrVec,
scope_id: &ScopeId,
permission_id: &PermissionId
) -> DispatchResult;
fn has_role(
user: AccountId,
pallet: IdOrVec,
scope_id: &ScopeId,
role_ids: Vec<RoleId>
) -> DispatchResult;
fn scope_exists(pallet: IdOrVec, scope_id: &ScopeId) -> DispatchResult;
fn permission_exists(
pallet: IdOrVec,
permission_id: &PermissionId
) -> DispatchResult;
fn is_role_linked_to_pallet(
pallet: IdOrVec,
role_id: &RoleId
) -> DispatchResult;
fn is_permission_linked_to_role(
pallet: IdOrVec,
role_id: &RoleId,
permission_id: &PermissionId
) -> DispatchResult;
fn get_role_users_len(
pallet: IdOrVec,
scope_id: &ScopeId,
role_id: &RoleId
) -> usize;
fn to_id(v: Vec<u8>) -> [u8; 32];
fn does_user_have_any_role_in_scope(
user: AccountId,
pallet: IdOrVec,
scope_id: &ScopeId
) -> bool;
fn get_roles_by_user(
user: AccountId,
pallet: IdOrVec,
scope_id: &ScopeId
) -> Vec<RoleId>;
fn get_roles_that_have_permission(
pallet: PalletId,
permission_id: &PermissionId
) -> Vec<RoleId>;
}