Skip to content

A modern, responsive Role-Based Access Control system built with React Tailwind CSS, featuring granular permissions management, user administration, and role-based access controls.

Notifications You must be signed in to change notification settings

kriti-raj/rbac-ui

Repository files navigation

Role-Based Access Control (RBAC) UI

A modern, responsive Role-Based Access Control system built with React Tailwind CSS, featuring granular permissions management, user administration, and role-based access controls.

🌟 Features

User Management

  • πŸ‘₯ View and manage users in a lexically sorted table
  • βž• Add new users with role assignment
  • ✏️ Edit user roles and status
  • πŸ—‘οΈ Delete users (admin only)
  • πŸ“Š User status tracking (Active/Inactive)

Role Management

  • πŸ‘‘ Pre-configured roles (Admin, Moderator, User)
  • πŸ” Role-based access control
  • πŸ“ Edit role permissions
  • 🎯 Granular permission management

Permissions System

  • 🎚️ Granular permission controls
  • πŸ“‚ Category-based permission organization
  • πŸ”„ Dynamic permission inheritance
  • πŸ›‘οΈ Secure access control

Data Management

  • πŸ’Ύ Local storage persistence
  • πŸ”„ Automatic data caching
  • πŸ“Š Efficient state management

πŸ› οΈ Technical Stack

  • Framework: React 18 + Vite
  • Styling: Tailwind CSS
  • Data Persistence: localStorage

πŸš€ Getting Started

Prerequisites

  • Node.js (v14 or higher)
  • npm or yarn

Installation

  1. Clone the repository
git clone https://github.com/yourusername/rbac-ui.git
  1. Install dependencies
cd rbac-ui
npm install
  1. Start the development server
npm run dev
  1. Build for production
npm run build

πŸ” Role Hierarchy & Permissions

Admin

  • Full system access
  • Manage users and roles
  • Delete users
  • Modify any role
  • Access all features

Moderator

  • Create users (limited to User/Moderator roles)
  • View users
  • Edit basic user info
  • Cannot delete users
  • Cannot modify Admin roles

User

  • View users only
  • No management capabilities
  • Basic access only

πŸ”’ Security Features

  • Role-based access control
  • Permission-based feature access
  • Input validation
  • Secure state management
  • Protected routes
  • Error handling

πŸ’‘ Key Features

Caching System

The application implements a custom caching system using localStorage:

  • First-time data fetch from source
  • Subsequent fetches from cache
  • Automatic cache updates
  • Persistent data storage

User Management

  • Add, edit, and delete users
  • Assign and modify roles
  • Toggle user status
  • Sort users alphabetically
  • Drag-and-drop reordering (admin only)

Permission Management

  • Granular permission control
  • Role-based access
  • Feature-level restrictions
  • Dynamic permission updates

πŸ› οΈ Development

Project Structure

rbac-ui/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ UsersTable.jsx
β”‚   β”‚   β”œβ”€β”€ EditRoleModal.jsx
β”‚   β”‚   └── AddUserModal.jsx
β”‚   β”œβ”€β”€ store/
β”‚   β”‚   └── Data.js
β”‚   └── App.jsx
β”œβ”€β”€ public/
└── package.json

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

πŸ“ž Contact

Project Link: https://github.com/kriti-raj/rbac-ui

About

A modern, responsive Role-Based Access Control system built with React Tailwind CSS, featuring granular permissions management, user administration, and role-based access controls.

Topics

Resources

Stars

Watchers

Forks