RBAC » History » Revision 11
Revision 10 (karnake ruengchaicharnkij, 04/20/2026 12:48 AM) → Revision 11/12 (karnake ruengchaicharnkij, 04/20/2026 01:04 AM)
# RBAC
[Page ID](PageId)
## Example
{{collapse(JSON...)
```json
{
"version": "1.0",
"roles": [
{
"id": "admin",
"name": "Admin",
"permissions": [
"admin_onboarding::data::maker", "admin_onboarding:data:maker",
"admin_onboarding::data::checker", "admin_onboarding:data:checker",
"admin_onboarding::data::approver", "admin_onboarding:data:approver",
"user_management::list::maker", "user_management:list:maker",
"user_management::list::approver" "user_management:list:approver"
]
},
{
"id": "supervisor",
"name": "Supervisor",
"permissions": [
"admin_onboarding::data::checker", "admin_onboarding:data:checker",
"admin_onboarding::data::approver" "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 |