RBAC » History » Revision 5
Revision 4 (karnake ruengchaicharnkij, 04/19/2026 08:03 AM) → Revision 5/12 (karnake ruengchaicharnkij, 04/19/2026 08:19 AM)
# RBAC [Page ID](PageId) ## Example **example** {{collapse(JSON...) current: ```json ``` { "version": "1.0", "roles": "groups": [ 1001, 1002, 1003 ], { "id": "admin", "name": "Admin", "rules": [ { "page": { "id": "admin_onboarding", "name": "Admin Onboarding", "sections": [ { "id": "admin_onboarding_data", "name": "Onboarding Data", "permissions": ["checker", "maker", "approver"] }, { "id": "admin_onboarding_documents", "name": "Documents", "permissions": ["checker"] } ] } }, { "page": { "id": "user_management", "name": "User Management", "sections": [ { "id": "user_list", "name": "User List", "permissions": ["maker", "approver"] } ] } } ] 1, 2, 3 ], }, { "id": "supervisor", "name": "Supervisor", "rules": "roles": [ { "page": { "id": "admin_onboarding", "name": "Admin Onboarding", "sections": [ { "id": "admin_onboarding_data", "name": "Onboarding Data", "permissions": ["checker", "approver"] } 11, 12, 13 ] } } ] } ], "permission_definitions": { "checker": "Can view and verify data", "maker": "Can create and edit data", "approver": "Can approve or reject data" } } ``` }} {{collapse(React Hook...) ``` javascript function usePagePermission(pageId: string, sectionId: string) { const { userRole, config } = useAuth() return { canCheck: hasPermission(config, userRole, pageId, sectionId, 'checker'), canMake: hasPermission(config, userRole, pageId, sectionId, 'maker'), canApprove: hasPermission(config, userRole, pageId, sectionId, 'approver'), } } // ใน component function OnboardingPage() { const { canMake, canApprove } = usePagePermission('admin_onboarding', 'admin_onboarding_data') return ( <div> {canMake && <button>Edit</button>} {canApprove && <button>Approve</button>} </div> ) } ``` }} **Enumbulator** |Permission_name |Permission_id | |--|--| |maker |11 | |checker |12 | |approver |13 | |Page_name|Page_id| |--|--| | | | | | |