MDK Logo
ReferenceUI KitReactUI Kit foundationComponentsSettings

RBACControlSettings

Settings panel listing roles and their permissions; supports editing role-permission grants.

Settings panel listing roles and their permissions; supports editing role-permission grants.

import { RBACControlSettings } from "@tetherto/mdk-react-devkit";
PropStatusTypeDefaultDescription
usersRequiredSettingsUser[]
rolesRequiredRoleOption[]
rolePermissionsRequiredRecord<string, Record<string, PermLevel>>
permissionLabelsRequiredRecord<string, string>
canWriteRequiredboolean
isLoadingOptionalboolean | undefined
onCreateUserRequired(data: { name: string; email: string; role: string; }) => Promise<void>
onUpdateUserRequired(data: { id: string; name: string; email: string; role: string; }) => Promise<void>
onDeleteUserRequired(userId: string) => Promise<void>
classNameOptionalstring | undefined

Usage

Full role-based access control settings panel: user list with inline role editing, permission matrix, and invite/delete controls.

Example

import { RBACControlSettings } from '@tetherto/mdk-react-devkit'const mockRoles = [  { value: 'admin', label: 'Admin' },  { value: 'operator', label: 'Operator' },  { value: 'viewer', label: 'Viewer' },]const mockUsers = [  { id: '1', name: 'Alice', email: 'alice@example.com', role: 'admin' },  { id: '2', name: 'Bob', email: 'bob@example.com', role: 'operator' },]const mockPermissions = {  admin: { read: 'full' as never, write: 'full' as never },  operator: { read: 'full' as never, write: 'limited' as never },  viewer: { read: 'full' as never, write: 'none' as never },}export const RBACControlSettingsExample = () => (  <div className="mdk-example-row">    <RBACControlSettings      users={mockUsers as never}      roles={mockRoles}      rolePermissions={mockPermissions}      permissionLabels={{ read: 'Read', write: 'Write' }}      canWrite={true}      onCreateUser={async () => {}}      onUpdateUser={async () => {}}      onDeleteUser={async () => {}}    />  </div>)