{"id":23462494,"url":"https://github.com/aasif-iqbal/role-based-access-control","last_synced_at":"2026-04-11T17:47:36.976Z","repository":{"id":268617944,"uuid":"904924036","full_name":"aasif-iqbal/Role-based-access-control","owner":"aasif-iqbal","description":"RBAC (Role-Based Access Control) is a security model used to manage user permissions by assigning roles to users. Each role has a set of predefined permissions, and users inherit these permissions based on their assigned roles. ","archived":false,"fork":false,"pushed_at":"2025-01-13T17:01:20.000Z","size":102,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-12T08:58:02.308Z","etag":null,"topics":["expressjs","javascript","joi-validation","jwt-authentication","middleware","mongo","moongose","rest-api","tyoescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aasif-iqbal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-12-17T20:12:10.000Z","updated_at":"2025-01-13T17:01:23.000Z","dependencies_parsed_at":"2024-12-17T22:26:37.274Z","dependency_job_id":"d661b544-fc9a-4235-9a4c-85737f6f20b6","html_url":"https://github.com/aasif-iqbal/Role-based-access-control","commit_stats":null,"previous_names":["aasif-iqbal/role-based-access-control"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aasif-iqbal/Role-based-access-control","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aasif-iqbal%2FRole-based-access-control","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aasif-iqbal%2FRole-based-access-control/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aasif-iqbal%2FRole-based-access-control/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aasif-iqbal%2FRole-based-access-control/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aasif-iqbal","download_url":"https://codeload.github.com/aasif-iqbal/Role-based-access-control/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aasif-iqbal%2FRole-based-access-control/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263041896,"owners_count":23404457,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["expressjs","javascript","joi-validation","jwt-authentication","middleware","mongo","moongose","rest-api","tyoescript"],"created_at":"2024-12-24T08:17:21.435Z","updated_at":"2026-04-11T17:47:31.931Z","avatar_url":"https://github.com/aasif-iqbal.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Role Based Access Control\nRBAC (Role-Based Access Control) is a security model used to manage user permissions by assigning roles to users. Each role has a set of predefined permissions, and users inherit these permissions based on their assigned roles. This approach simplifies permission management and ensures that users can access only the resources they are authorized to use.\n\nIn short:\n- Roles define permissions.\n- Users are assigned to roles.\n- Access is granted based on the roles.\n\n--- \n\n## How to start project\n1. git clone \n2. cd backend \n    - npm install\n    - npm install typescript ts-node @types/node --save-dev\n    - npm run build\n    - npm start\n    - npm run start:dev (nodemon)\n\n---\n\n## Project Directory Structure\n```\n└── 📁backend\n    └── 📁src\n        └── app.ts\n        └── 📁config\n            └── db.ts\n        └── 📁controllers\n            └── categories.ts\n            └── comments.ts\n            └── likes.ts\n            └── permissions.ts\n            └── posts.ts\n            └── roles.ts\n            └── routePermissions.ts\n            └── userPermissions.ts\n            └── users.ts\n        └── 📁helpers\n            └── routePermissionHelper.ts\n            └── userPermissionHelper.ts\n        └── index.ts\n        └── 📁middlewares\n            └── authenticate.ts\n            └── checkPermission.ts\n            └── onlyAdminAccess.ts\n            └── 📁validators\n                └── category.ts\n                └── comment.ts\n                └── like.ts\n                └── login.ts\n                └── permission.ts\n                └── post.ts\n                └── role.ts\n                └── routePermissions.ts\n                └── user.ts\n                └── userPermission.ts\n        └── 📁models\n            └── categories.ts\n            └── comments.ts\n            └── likes.ts\n            └── permissions.ts\n            └── posts.ts\n            └── roles.ts\n            └── router-permissions.ts\n            └── user-permissions.ts\n            └── users.ts\n        └── 📁routes\n            └── category.ts\n            └── comment.ts\n            └── index.ts\n            └── like.ts\n            └── permission.ts\n            └── post.ts\n            └── role.ts\n            └── routePermissions.ts\n            └── user.ts\n            └── userPermissions.ts\n        └── 📁services\n            └── authService.ts\n            └── mailService.ts\n        └── 📁types\n            └── authenticated-request.ts\n            └── express.d.ts\n        └── 📁utils\n            └── getRoutes.ts\n            └── interfaces.d.ts\n    └── .env\n    └── .env-example\n    └── .gitignore\n    └── nodemon.json\n    └── package-lock.json\n    └── package.json\n    └── tsconfig.json\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faasif-iqbal%2Frole-based-access-control","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faasif-iqbal%2Frole-based-access-control","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faasif-iqbal%2Frole-based-access-control/lists"}