RBAC » History » Revision 8
Revision 7 (karnake ruengchaicharnkij, 04/19/2026 08:58 AM) → Revision 8/12 (karnake ruengchaicharnkij, 04/20/2026 12:45 AM)
# RBAC [Page ID](PageId) ## Example {{collapse(JSON...) ```json { "version": "1.0", "roles": [ { "id": "admin", "name": "Admin", "rules": [ "admin_onboarding:data:maker", { "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"] } ] } "admin_onboarding:data:checker", }, "admin_onboarding:data:approver", { "page": { "id": "user_management", "name": "User Management", "sections": [ { "id": "user_list", "name": "User List", "permissions": ["maker", "approver"] } ] } "user_management:list:maker", "user_management:list:approver" } ] }, { "id": "supervisor", "name": "Supervisor", "rules": [ "admin_onboarding:data:checker", { "page": { "id": "admin_onboarding", "name": "Admin Onboarding", "sections": [ { "id": "admin_onboarding_data", "name": "Onboarding Data", "permissions": ["checker", "approver"] } ] } "admin_onboarding:data:approver" } ] } ] ], "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> ) } ``` }} {{collapse(Approval DB schemas...) ```sql ``` }} **Enumbulator** |Permission_name |Permission_id | |--|--| |maker |11 | |checker |12 | |approver |13 |