Back to Bricks

RBAC (Role Based Access)

Auth & Security

Enterprise-grade role management. Assign roles (admin, editor) to users and enforce permissions via middleware.

rolespermissionsadminsecurityAuth Required
Backend:
prisma/schema.prismajavascript
1model Role {
2 id String @id @default(uuid())
3 name String @unique
4 permissions String[]
5 createdAt DateTime @default(now())
6}
7
8model UserRole {
9 id String @id @default(uuid())
10 userId String
11 roleId String
12 role Role @relation(fields: [roleId], references: [id])
13 assignedAt DateTime @default(now())
14}

Paste Guide

Copy files to:

prisma/schema.prisma (append models)repositories/rbac.repo.jscontrollers/rbacController.jsroutes/rbacRoutes.js

Add to server.js:

app.use('/api/rbac', require('./routes/rbacRoutes'));

Stack

PrismaExpress

Test Examples

curl -X POST http://localhost:5000/api/rbac \
  -H "Authorization: Bearer ADMIN_TOKEN" \
  -d '{"name": "editor", "permissions": ["edit_posts"]}'
curl -X POST http://localhost:5000/api/rbac/assign \
  -H "Authorization: Bearer ADMIN_TOKEN" \
  -d '{"userId": "user_id", "roleName": "editor"}'