An RBAC approach using bitwise permission system
4 bits required to show CRUD (4 actions) for each role
- Admin - 15 -
1111
- Seller - 14 -
1110
- Supporter - 5 -
0101
- Customer - 4 -
0100
Server: Node, Nestjs
Database: Postgres
Clone the project
git clone https://link-to-project
Go to the project directory
cd my-project
Install dependencies
npm install
Start the server
npm run start:dev
Install my-project with npm
npm install my-project
cd my-project
- Signup / Login
- Dummy endpoints
To run this project, you will need to add the following environment variables to your .env file
- PG_HOST=localhost
- PG_HOST=5432
- PG_USERNAME=postgres
- PG_PASSWORD=password
- PG_DB=acl
- SALT_ROUNDS=10;
POST /auth HTTP/1.1
Host: localhost:3000
Content-Type: application/json
Content-Length: 89
{
"username": "don",
"password" : "password",
"role": "customer"
}
POST /auth/login HTTP/1.1
Host: localhost:3000
Content-Type: application/json
Content-Length: 57
{
"username": "don",
"password" : "password"
}
Dummy Endpoint(s)
GET /products HTTP/1.1
Host: localhost:3000
Authorization: eyJhCI6IkpXVCJ9.eyJbiIsInJvbGVJZCIX0.rsyzHRxDp8SmbOsPqJc-M
PATCH /products HTTP/1.1
Host: localhost:3000
Authorization: eyJhbGcinR5cCI6IkpXVCJ9.eyJ1c2Y2siLCJyb2x0NTkzfQ.EFvu_UZE4fPbFJk