Project

General

Profile

RBAC » History » Revision 10

Revision 9 (karnake ruengchaicharnkij, 04/20/2026 12:47 AM) → Revision 10/12 (karnake ruengchaicharnkij, 04/20/2026 12:48 AM)

# RBAC 
 [Page ID](PageId) 

 ## Example 
 {{collapse(JSON...) 
 ```json 
 { 
   "version": "1.0", 
   "roles": [ 
     { 
       "id": "admin", 
       "name": "Admin", 
       "permissions": "auth": [ 
         "admin_onboarding:data:maker", 
         "admin_onboarding:data:checker", 
         "admin_onboarding:data:approver", 
         "user_management:list:maker", 
         "user_management:list:approver" 
       ] 
     }, 
     { 
       "id": "supervisor", 
       "name": "Supervisor", 
       "permissions": "auth": [ 
         "admin_onboarding:data:checker", 
         "admin_onboarding:data:approver" 
       ] 
     } 
   ] 
 } 
 ``` 
 }} 

 {{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 |