@compugit/react-rbac
Version:
A comprehensive Role-Based Access Control (RBAC) library for React applications with support for groups, roles, permissions, and protected components
49 lines (48 loc) • 1.04 kB
TypeScript
import type React from "react";
export interface User {
id: string;
email: string;
name: string;
groups: Group[];
roles: Role[];
permissions: Permission[];
}
export interface Group {
id: string;
name: string;
description?: string;
roles: Role[];
permissions: Permission[];
}
export interface Role {
id: string;
name: string;
description?: string;
permissions: Permission[];
}
export interface Permission {
id: string;
name: string;
resource: string;
action: string;
description?: string;
}
export interface RBACConfig {
user: User | null;
loading: boolean;
error: string | null;
}
export interface AuthorizationOptions {
requireAll?: boolean;
strict?: boolean;
}
export type AuthorizationMode = "any" | "all";
export interface ProtectedElementProps {
children: React.ReactNode;
fallback?: React.ReactNode;
roles?: string[];
permissions?: string[];
groups?: string[];
mode?: AuthorizationMode;
requireAll?: boolean;
}