Skip to content

Repository files navigation

Workbench-RBAC

Admin panel for managing roles, permissions, and user access in a workspace.

📺 Video Demo

Features

  • Create custom roles with granular permissions across projects, tasks, members, billing, and settings.
  • Edit permissions through a visual matrix. Toggle individual actions per resource.
  • Assign one or more roles to users and manage their activation status.
  • Preview any user's effective permissions, resolved across all assigned roles.

Tech Stack

Technology Purpose
Next.js 14 App Router, API route handlers, server rendering
TypeScript Type safety across components, API, and data layer
Tailwind CSS Utility-first styling, no CSS modules
lucide-react Icon set for UI controls and status indicators

Getting Started

No database and no environment variables required. All data lives in memory.

  1. Clone the repo
    git clone https://github.com/ksploitx/workbench-rbac.git
    cd workbench-rbac
    
  2. Install dependencies
    npm install
    
  3. Start the dev server
    npm run dev
    
  4. Open http://localhost:3000

Project Structure

app/            # Pages (roles, users, permissions) and API route handlers
components/     # Shared UI — sidebar, header, search context
lib/            # Types, permission definitions, in-memory data store
README.md       # This file

How Permissions Work

When a user has multiple roles, their effective permissions are the union of all permissions from every assigned role. If any role grants a permission, the user has it. Permissions are additive, never subtracted.

For example, if a user has the Member role (which grants projects.view, projects.create, projects.edit, tasks.view, tasks.create, tasks.edit, tasks.assign, and members.view) and the Contractor role (which grants projects.view, tasks.view, tasks.edit, and tasks.assign), their effective permissions include the combined set of both. The overlap is merged, not duplicated.

About

Role and permission management admin panel built for The Internet Folks assignment. Custom roles, permission matrix, multi-role user assignment, and effective permission resolution using Next.js 14, TypeScript, and Tailwind.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages