{"info":{"_postman_id":"4c830841-32ae-42cb-a4e4-58663444551e","name":"Role-Based Access Control API","description":"<html><head></head><body><h2 id=\"postman-collection-user-management-api-with-rbac\">Postman Collection: User Management API with RBAC</h2>\n<p><strong>Description:</strong></p>\n<p>This Postman collection allows you to interact with a User Management API that implements Role-Based Access Control (RBAC). It provides functionalities for user registration, login, role management, and user profile access, considering different user roles and permissions.</p>\n<p><strong>Folders:</strong></p>\n<p>The collection is organized into folders for better management:</p>\n<ul>\n<li><p><strong>Registration:</strong> Requests for registering new users.</p>\n</li>\n<li><p><strong>Login:</strong> Requests for user authentication and obtaining access tokens.</p>\n</li>\n<li><p><strong>Roles:</strong> Requests for managing user roles and permissions (Admin only).</p>\n</li>\n<li><p><strong>User Details:</strong> Requests for fetching and updating user profiles.</p>\n</li>\n</ul>\n<p><strong>Environment Variables:</strong></p>\n<ul>\n<li><p>Consider using environment variables to store sensitive information like:</p>\n<ul>\n<li><p>Base URL of your API.</p>\n</li>\n<li><p>Placeholder values for usernames and passwords (avoid storing actual passwords in the collection).</p>\n</li>\n</ul>\n</li>\n</ul>\n<p><strong>Authorization:</strong></p>\n<ul>\n<li><p>Public endpoints (like registration) do not require authorization.</p>\n</li>\n<li><p>Secured endpoints require Bearer token authorization retrieved from login requests.</p>\n</li>\n</ul>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"23403023","collectionId":"4c830841-32ae-42cb-a4e4-58663444551e","publishedId":"2sA3Qza8YR","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2024-06-05T17:07:59.000Z"},"item":[{"name":"Auth","item":[{"name":"User Registeration","event":[{"listen":"test","script":{"id":"b4dddbe1-5820-4db0-abf3-97487372aa72","exec":[""],"type":"text/javascript","packages":{}}}],"id":"62c6183d-5379-4e92-82a8-4b085bbd6e77","request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"localhost:8000/auth/signup","description":"<p>This endpoint will allow normal users to register.</p>\n","urlObject":{"port":"8000","path":["auth","signup"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"95bc20f8-6665-4607-bf06-d4fdb13f0d72","name":"Successful User Registeration","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"name\": \"Afraz\",\r\n    \"email\": \"afraz3301@gmail1.com\",\r\n    \"password\":\"12345678\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:8000/auth/signup"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"224"},{"key":"ETag","value":"W/\"e0-rFoIQU8JLbKJ/Qkk36D8gbaySDU\""},{"key":"Date","value":"Wed, 05 Jun 2024 12:10:05 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"User created successfully\",\n    \"user\": {\n        \"name\": \"Afraz\",\n        \"email\": \"afraz3301@gmail1.com\",\n        \"password\": \"$2b$10$DRajMzTw1nH3shQzpY6Sn.jBmYOiUjBIVDH03aHOdggWDGD.iQI6m\",\n        \"role\": \"guest\",\n        \"_id\": \"6660559d4c4db6f6f806b801\",\n        \"__v\": 0\n    }\n}"},{"id":"91ce7b87-c15a-45c8-9e31-bf253fd3fe41","name":"Duplicate Email","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"name\": \"Afraz\",\r\n    \"email\": \"afraz3301@gmail.com\",\r\n    \"password\":\"12345678\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:8000/auth/signup"},"status":"Conflict","code":409,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"34"},{"key":"ETag","value":"W/\"22-0vInFX57D0463enA/zkOEgxNZXU\""},{"key":"Date","value":"Wed, 05 Jun 2024 12:10:41 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Email already exists\"\n}"},{"id":"cd58c6b2-dbcd-49a1-8f82-323bfa6db6b5","name":"Missing Required Fields","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n   \r\n    \"email\": \"afraz3301@gmail.com\",\r\n    \"password\":\"12345678\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:8000/auth/signup"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"37"},{"key":"ETag","value":"W/\"25-ScCwsGo9bCIGpcO4hjV6hoWATx0\""},{"key":"Date","value":"Wed, 05 Jun 2024 12:11:18 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Missing required fields\"\n}"}],"_postman_id":"62c6183d-5379-4e92-82a8-4b085bbd6e77"},{"name":"Create Admin","event":[{"listen":"test","script":{"id":"b4dddbe1-5820-4db0-abf3-97487372aa72","exec":[""],"type":"text/javascript","packages":{}}}],"id":"37376100-f4b8-4380-8e41-8190aa9b2869","request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\"name\":\"admin2\",\r\n\"email\":\"admin2@email.com\",\r\n\"password\":\"12345678\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:8000/auth/admin","description":"<p>This endpoint will allow Super Admin to create more admins.</p>\n<p><em><strong>Note</strong></em>__<em>: If no admin already exists, then by default a few roles and permissions will be created the first time.</em></p>\n<p><strong>Permissions Required:</strong> Only Super Admin can add more admins, login with email and password stored in .env file to have access to Super Admin Priviledges.</p>\n","urlObject":{"port":"8000","path":["auth","admin"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"5d98079e-5a0b-429c-8730-440ef6f75a74","name":"Successful Admin Creation","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\"name\":\"admin2\",\r\n\"email\":\"admin2@email.com\",\r\n\"password\":\"12345678\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:8000/auth/admin"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"221"},{"key":"ETag","value":"W/\"dd-ZrHfTCvYx+VF8uj2wnGP0OEhWfY\""},{"key":"Date","value":"Wed, 05 Jun 2024 13:26:37 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"User created successfully\",\n    \"user\": {\n        \"name\": \"admin2\",\n        \"email\": \"admin2@email.com\",\n        \"password\": \"$2b$10$YrZIzjGFIct63BKbYK/HDuUG0.AvElO0MqnG07t8Q8PwgI86Cd2eG\",\n        \"role\": \"admin\",\n        \"_id\": \"6660678cc46f4a6df9955e5b\",\n        \"__v\": 0\n    }\n}"},{"id":"9052eb10-c678-4451-bf96-cd6639f0a04a","name":"Unauthorized to create admin","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\"name\":\"admin2\",\r\n\"email\":\"admin2@email.com\",\r\n\"password\":\"12345678\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:8000/auth/admin"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"26"},{"key":"ETag","value":"W/\"1a-pljHtlo127JYJR4E/RYOPb6ucbw\""},{"key":"Date","value":"Wed, 05 Jun 2024 13:27:32 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Unauthorized\"\n}"}],"_postman_id":"37376100-f4b8-4380-8e41-8190aa9b2869"},{"name":"User Login","event":[{"listen":"test","script":{"id":"b4dddbe1-5820-4db0-abf3-97487372aa72","exec":[""],"type":"text/javascript","packages":{}}}],"id":"094a8265-8dae-479b-9f42-e7ec56381a5f","request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"localhost:8000/auth/signup","description":"<p>This endpoint will allow users and admins to login.</p>\n","urlObject":{"port":"8000","path":["auth","signup"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"83b09c68-1855-4733-86a6-ce3c1992355e","name":"Invalid Credentials","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n\r\n    \"email\": \"afraz3302@gmail.com\",\r\n    \"password\":\"12345678\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:8000/auth/login"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"39"},{"key":"ETag","value":"W/\"27-Mm37A2ls1bgL0/D8e3MSpDLbow8\""},{"key":"Date","value":"Wed, 05 Jun 2024 12:23:54 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Invalid email or password\"\n}"},{"id":"037b321e-2892-4efd-8268-cb5d7fcb4f45","name":"Successful User Login","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n\r\n    \"email\": \"afraz3301@gmail.com\",\r\n    \"password\":\"12345678\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:8000/auth/login"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"283"},{"key":"ETag","value":"W/\"11b-EvLdsT4RVsTS6jAtiNH+pJSMMBs\""},{"key":"Date","value":"Wed, 05 Jun 2024 12:26:07 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Login successful\",\n    \"user\": {\n        \"name\": \"Afraz\",\n        \"email\": \"afraz3301@gmail.com\"\n    },\n    \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImFmcmF6MzMwMUBnbWFpbC5jb20iLCJyb2xlIjoiZ3Vlc3QiLCJpYXQiOjE3MTc1OTAzNjcsImV4cCI6MTcxNzU5Mzk2N30.AkSQ1GvTlyh8uJXZkpPmoCln_cEpcbXDRwuRzGj449c\"\n}"}],"_postman_id":"094a8265-8dae-479b-9f42-e7ec56381a5f"},{"name":"Super Admin Login","event":[{"listen":"test","script":{"id":"b4dddbe1-5820-4db0-abf3-97487372aa72","exec":[""],"type":"text/javascript","packages":{}}}],"id":"2853953d-3920-41c5-bf8d-455a9989e8b0","request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"localhost:8000/auth/signup","description":"<p>Login with email and password stored in .env file to have access to Super Admin Priviledges.</p>\n","urlObject":{"port":"8000","path":["auth","signup"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"e9300e69-62e6-462a-9dc3-a425a07e5412","name":"Successful Super Admin Login","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"email\":\"superadmin@email.com\",\r\n    \"password\":\"superadminpassword\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:8000/auth/superadmin/login"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"238"},{"key":"ETag","value":"W/\"ee-m5J1APcI8bHLaSSmKXxWvE/sfyI\""},{"key":"Date","value":"Wed, 05 Jun 2024 12:34:38 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Login successful\",\n    \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InN1cGVyYWRtaW5AZW1haWwuY29tIiwicm9sZSI6IlNVUEVSX0FETUlOIiwiaWF0IjoxNzE3NTkwODc4LCJleHAiOjE3MTc1OTQ0Nzh9.gLaVdArBAhR8poRXzp5vbPMwq0Fh7j5Lf-CdWbrvKPk\"\n}"},{"id":"58076c96-6417-4656-b8b1-99d60f6b4c3a","name":"Invalid Credentials","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"email\":\"normauser@email.com\",\r\n    \"password\":\"superadminpassword\"\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:8000/auth/superadmin/login"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"39"},{"key":"ETag","value":"W/\"27-Mm37A2ls1bgL0/D8e3MSpDLbow8\""},{"key":"Date","value":"Wed, 05 Jun 2024 12:35:12 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Invalid email or password\"\n}"}],"_postman_id":"2853953d-3920-41c5-bf8d-455a9989e8b0"}],"id":"bf370029-4786-49d7-96ee-8e557c3a6a15","description":"<p>API endpoints for registeration, and logging in as a user, guest, admin or a super-admin.</p>\n","_postman_id":"bf370029-4786-49d7-96ee-8e557c3a6a15"},{"name":"Admin","item":[{"name":"Create role","id":"964f57a4-7c66-43e6-8c1c-cab9374cb260","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\"name\":\"user\",\r\n\"permissions\":[\"create_recrod\", \"read_record\", \"delete_record\", \"update_record\"]}","options":{"raw":{"language":"json"}}},"url":"localhost:8000/admin","description":"<p>This endpoint allows admins to create new unique roles. Roles with names that already exist cannot be created.</p>\n<p><strong>Permissions Required :</strong> \"write_role\"</p>\n","urlObject":{"port":"8000","path":["admin"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"f6b37bee-77d4-4be8-a2a2-db6445598431","name":"Successful role creation","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\"name\":\"user\",\r\n\"permissions\":[\"create_recrod\", \"read_record\", \"delete_record\", \"update_record\"]}","options":{"raw":{"language":"json"}}},"url":"localhost:8000/admin"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"181"},{"key":"ETag","value":"W/\"b5-5xeZ/BSFw0SdIeMrgfBtXUo/rhg\""},{"key":"Date","value":"Wed, 05 Jun 2024 14:07:57 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Role created successfully\",\n    \"role\": {\n        \"name\": \"user\",\n        \"permissions\": [\n            \"create_recrod\",\n            \"read_record\",\n            \"delete_record\",\n            \"update_record\"\n        ],\n        \"_id\": \"6660713d073cc47d72e72611\",\n        \"__v\": 0\n    }\n}"},{"id":"1c5fe0f3-c39d-4b06-ac6a-9006d8144d14","name":"Role already exists","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\"name\":\"user\",\r\n\"permissions\":[\"create_recrod\", \"read_record\", \"delete_record\", \"update_record\"]}","options":{"raw":{"language":"json"}}},"url":"localhost:8000/admin"},"status":"Conflict","code":409,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"33"},{"key":"ETag","value":"W/\"21-vJvbBlAG3YjtodHX2vCGF6Mq1ls\""},{"key":"Date","value":"Wed, 05 Jun 2024 14:09:07 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Role already exists\"\n}"}],"_postman_id":"964f57a4-7c66-43e6-8c1c-cab9374cb260"},{"name":"Delete Role","id":"4699f5e8-928d-426c-8a82-b62452f84516","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\"name\":\"user\",\r\n\"permissions\":[\"create_recrod\", \"read_record\", \"delete_record\", \"update_record\"]}","options":{"raw":{"language":"json"}}},"url":"localhost:8000/admin","description":"<p>This endpoint allows the admins to delete roles.</p>\n<p><em><strong>Note:</strong></em> <em>Admins cannot delete admin roles, for that superadmin access is required.</em></p>\n<p><strong>Permissions Required :</strong> \"delete_role\"</p>\n","urlObject":{"port":"8000","path":["admin"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"b6b996ee-0acf-45a5-974a-ef4e49a48d36","name":"Role Deleted","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"localhost:8000/admin/role/user"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"39"},{"key":"ETag","value":"W/\"27-ubQu1fSPBtIEgZjlh4N3G6Aqn1w\""},{"key":"Date","value":"Wed, 05 Jun 2024 14:57:14 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Role deleted successfully\"\n}"},{"id":"1d88047c-ccc4-4275-a753-037a26118c8c","name":"Admin Role not deleted via admin","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"localhost:8000/admin/role/admin"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"78"},{"key":"ETag","value":"W/\"4e-qGNIgNPYmXvWWE102rbSjmpWPPI\""},{"key":"Date","value":"Wed, 05 Jun 2024 14:57:49 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Unauthorized: Deleting admin role requires SUPER_ADMIN privilege\"\n}"}],"_postman_id":"4699f5e8-928d-426c-8a82-b62452f84516"},{"name":"Get Roles","id":"18567e17-025b-481c-b1ac-547e205d955c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":"{\"name\":\"user\",\r\n\"permissions\":[\"create_recrod\", \"read_record\", \"delete_record\", \"update_record\"]}","options":{"raw":{"language":"json"}}},"url":"localhost:8000/admin/roles","description":"<p>This endpoint allows admins to get all roles.</p>\n<p><strong>Permissions Required :</strong> \"read_role\"</p>\n","urlObject":{"port":"8000","path":["admin","roles"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"5be041a0-aa4c-4062-9efa-fe85ec5be798","name":"Get All Roles","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":"{\"name\":\"user\",\r\n\"permissions\":[\"create_recrod\", \"read_record\", \"delete_record\", \"update_record\"]}","options":{"raw":{"language":"json"}}},"url":"localhost:8000/admin/roles"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"140"},{"key":"ETag","value":"W/\"8c-5WPcWHwTKPeSlEt26HVy4feviqQ\""},{"key":"Date","value":"Wed, 05 Jun 2024 15:00:27 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"roles\": [\n        {\n            \"_id\": \"666074e3cd876237718cfdf7\",\n            \"name\": \"admin\",\n            \"permissions\": [\n                \"read_role\",\n                \"write_role\",\n                \"delete_role\",\n                \"\\\"modify_role\"\n            ],\n            \"__v\": 0\n        }\n    ]\n}"}],"_postman_id":"18567e17-025b-481c-b1ac-547e205d955c"},{"name":"Get Role","id":"cbbd0ba1-b369-4936-b985-a5b30c390a07","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"localhost:8000/admin/role/user","description":"<p>This endpoint allows the admin to view a particular role's info.</p>\n<p><strong>Permissions Required :</strong> \"read_role\"</p>\n","urlObject":{"port":"8000","path":["admin","role","user"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"2c0a9f52-15cb-4189-b554-8e2c6bd6cac4","name":"Get Role","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"localhost:8000/admin/role/admin"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"135"},{"key":"ETag","value":"W/\"87-xbeWS6UCB/51usOKdgmOVn7U88I\""},{"key":"Date","value":"Wed, 05 Jun 2024 15:12:49 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"role\": {\n        \"_id\": \"666074e3cd876237718cfdf7\",\n        \"name\": \"admin\",\n        \"permissions\": [\n            \"read_role\",\n            \"write_role\",\n            \"delete_role\",\n            \"modify_role\"\n        ],\n        \"__v\": 0\n    }\n}"},{"id":"569a6ee5-cd0a-4e29-9931-4b4df49ad220","name":"Role Not found","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"localhost:8000/admin/role/randomRole"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"28"},{"key":"ETag","value":"W/\"1c-crtRjaQ45z1i/yha6LjlsxPxiBM\""},{"key":"Date","value":"Wed, 05 Jun 2024 15:13:38 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Role not found\"\n}"}],"_postman_id":"cbbd0ba1-b369-4936-b985-a5b30c390a07"},{"name":"Get All Users","id":"89b678e1-03fa-4a4e-a2dc-fa95405d48d7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"localhost:8000/admin/getAllUsers","description":"<p>This endpoint allows admin to view all users information.</p>\n<p><strong>Permissions Required :</strong> \"read_record\"</p>\n","urlObject":{"port":"8000","path":["admin","getAllUsers"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"c882878e-a461-494e-b2b8-45b64ae59598","name":"Get All Users","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"localhost:8000/admin/getAllUsers"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"428"},{"key":"ETag","value":"W/\"1ac-OKMmWg+dn4IOKJDHniCX1m7JCeE\""},{"key":"Date","value":"Wed, 05 Jun 2024 16:16:59 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"users\": [\n        {\n            \"_id\": \"666054fc4c4db6f6f806b7fa\",\n            \"name\": \"Afraz Ahmed 1\",\n            \"email\": \"afraz3301@gmail.com\",\n            \"role\": \"user\",\n            \"__v\": 0\n        },\n        {\n            \"_id\": \"666055684c4db6f6f806b7fe\",\n            \"name\": \"Afraz\",\n            \"email\": \"afraz3301@yahoo.com\",\n            \"role\": \"guest\",\n            \"__v\": 0\n        },\n        {\n            \"_id\": \"6660559d4c4db6f6f806b801\",\n            \"name\": \"Afraz\",\n            \"email\": \"afraz3301@gmail1.com\",\n            \"role\": \"user\",\n            \"__v\": 0\n        },\n        {\n            \"_id\": \"666074e3cd876237718cfdf9\",\n            \"name\": \"admin2\",\n            \"email\": \"admin2@email.com\",\n            \"role\": \"admin\",\n            \"__v\": 0\n        }\n    ]\n}"}],"_postman_id":"89b678e1-03fa-4a4e-a2dc-fa95405d48d7"},{"name":"Update User Role","id":"26b94cdb-4f88-4f27-b467-24722f50d050","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":"{\"name\":\"user\",\r\n\"permissions\":[\"create_recrod\", \"read_record\", \"delete_record\", \"update_record\"]}","options":{"raw":{"language":"json"}}},"url":"localhost:8000/admin/role/admin","description":"<p>This endpoint allows admin to update a user's role.</p>\n<p><strong>Permissions Required :</strong> \"update_role\"</p>\n","urlObject":{"port":"8000","path":["admin","role","admin"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"fc3d5e42-712f-4311-aa7d-68a0c3c9f7ea","name":"Update User Role Success","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\"role\":\"guest\"}","options":{"raw":{"language":"json"}}},"url":"localhost:8000/admin/user/666054fc4c4db6f6f806b7fa"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"162"},{"key":"ETag","value":"W/\"a2-G1lJWm8YOBKzVIyomPx9zFNyxE8\""},{"key":"Date","value":"Wed, 05 Jun 2024 16:20:50 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"User role updated successfully\",\n    \"user\": {\n        \"_id\": \"666054fc4c4db6f6f806b7fa\",\n        \"name\": \"Afraz Ahmed 1\",\n        \"email\": \"afraz3301@gmail.com\",\n        \"role\": \"guest\",\n        \"__v\": 0\n    }\n}"}],"_postman_id":"26b94cdb-4f88-4f27-b467-24722f50d050"},{"name":"Update Role","id":"18650014-365a-4f27-8b08-afc8dda629be","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\"name\":\"user\",\r\n\"permissions\":[\"create_recrod\", \"read_record\", \"delete_record\", \"update_record\"]}","options":{"raw":{"language":"json"}}},"url":"localhost:8000/admin/role/admin","description":"<p>This endpoint allows admin to update a role and its permissions.</p>\n<p><strong>Permissions Required :</strong> \"update_role\"</p>\n","urlObject":{"port":"8000","path":["admin","role","admin"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"aed0fded-5a2e-4169-9a73-ea088b95aabb","name":"Add Permissions","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"name\":\"user\",\r\n  \"permissions\": {\r\n    \"add\": [\"newPermission1\", \"newPermission2\"]\r\n  }\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:8000/admin/role/user"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"215"},{"key":"ETag","value":"W/\"d7-v+UtguCDPFgBa7ebud4V0/pBKF8\""},{"key":"Date","value":"Wed, 05 Jun 2024 15:29:55 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Role updated successfully\",\n    \"role\": {\n        \"_id\": \"66608455bdd0ee47f1cd4f63\",\n        \"name\": \"user\",\n        \"permissions\": [\n            \"create_recrod\",\n            \"read_record\",\n            \"delete_record\",\n            \"update_record\",\n            \"newPermission1\",\n            \"newPermission2\"\n        ],\n        \"__v\": 3\n    }\n}"},{"id":"faeb0524-9658-4420-8c2e-8070bbca37ea","name":"Delete Permissions","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"name\":\"user\",\r\n  \"permissions\": {\r\n    \"delete\": [\"newPermission1\", \"newPermission2\"]\r\n  }\r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:8000/admin/role/user"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"181"},{"key":"ETag","value":"W/\"b5-V5sD6ATLu3ahSvTgSIJVnn9KpMA\""},{"key":"Date","value":"Wed, 05 Jun 2024 15:30:22 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Role updated successfully\",\n    \"role\": {\n        \"_id\": \"66608455bdd0ee47f1cd4f63\",\n        \"name\": \"user\",\n        \"permissions\": [\n            \"create_recrod\",\n            \"read_record\",\n            \"delete_record\",\n            \"update_record\"\n        ],\n        \"__v\": 4\n    }\n}"}],"_postman_id":"18650014-365a-4f27-8b08-afc8dda629be"}],"id":"3264efbf-40ea-4513-a6b9-cf5121e57651","description":"<p>A set of Admin related functionalities including Roles and Permissions manipulations.</p>\n","_postman_id":"3264efbf-40ea-4513-a6b9-cf5121e57651"},{"name":"User","item":[{"name":"Get user info","id":"496ddd8b-9fb8-4c32-af3e-39d8e2b13905","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"description":"<p>This endpoint allows users to view their info.</p>\n<p><strong>Permissions Required :</strong> \"read_record\"</p>\n","urlObject":{"query":[],"variable":[]},"url":""},"response":[{"id":"2b3cbd00-b9a8-4f5e-ad65-cdd3302c31b4","name":"User Info Returned","originalRequest":{"method":"GET","header":[],"url":"localhost:8000/user/666054fc4c4db6f6f806b7fa"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"110"},{"key":"ETag","value":"W/\"6e-Ssspxdo5P0qXraRCKJdp9rWau5Q\""},{"key":"Date","value":"Wed, 05 Jun 2024 16:00:05 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"user\": {\n        \"_id\": \"666054fc4c4db6f6f806b7fa\",\n        \"name\": \"Afraz\",\n        \"email\": \"afraz3301@gmail.com\",\n        \"role\": \"user\",\n        \"__v\": 0\n    }\n}"}],"_postman_id":"496ddd8b-9fb8-4c32-af3e-39d8e2b13905"},{"name":"update user info","id":"33ef5279-c27c-4fe4-842f-45625a9afb34","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n     \"name\": \"Afraz Ahmed 1\",\r\n     \"password\":\"123456789\"\r\n        \r\n}","options":{"raw":{"language":"json"}}},"url":"localhost:8000/user/666054fc4c4db6f6f806b7fa","description":"<p>This endpoint allows users to update their info.</p>\n<p><strong>Permissions Required :</strong> \"update_record\"</p>\n","urlObject":{"port":"8000","path":["user","666054fc4c4db6f6f806b7fa"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"d303759e-9e8b-48f7-9a6e-a620815ea2f6","name":"User Info Returned","originalRequest":{"method":"GET","header":[],"url":"localhost:8000/user/666054fc4c4db6f6f806b7fa"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"110"},{"key":"ETag","value":"W/\"6e-Ssspxdo5P0qXraRCKJdp9rWau5Q\""},{"key":"Date","value":"Wed, 05 Jun 2024 16:00:05 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"user\": {\n        \"_id\": \"666054fc4c4db6f6f806b7fa\",\n        \"name\": \"Afraz\",\n        \"email\": \"afraz3301@gmail.com\",\n        \"role\": \"user\",\n        \"__v\": 0\n    }\n}"}],"_postman_id":"33ef5279-c27c-4fe4-842f-45625a9afb34"}],"id":"60f9cc28-6fc7-42e7-9d55-d259f4093419","description":"<p>A set of user related functionalities to manipulate user details.</p>\n","_postman_id":"60f9cc28-6fc7-42e7-9d55-d259f4093419"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":[""]}},{"listen":"test","script":{"type":"text/javascript","exec":[""]}}]}