Project

General

Profile

RBAC » History » Version 11

karnake ruengchaicharnkij, 04/20/2026 01:04 AM

1 1 karnake ruengchaicharnkij
# RBAC
2 8 karnake ruengchaicharnkij
[Page ID](PageId)
3
4 5 karnake ruengchaicharnkij
## Example
5
{{collapse(JSON...)
6
```json
7 1 karnake ruengchaicharnkij
{
8 5 karnake ruengchaicharnkij
  "version": "1.0",
9
  "roles": [
10
    {
11
      "id": "admin",
12
      "name": "Admin",
13 10 karnake ruengchaicharnkij
      "permissions": [
14 11 karnake ruengchaicharnkij
        "admin_onboarding::data::maker",
15
        "admin_onboarding::data::checker",
16
        "admin_onboarding::data::approver",
17
        "user_management::list::maker",
18
        "user_management::list::approver"
19 5 karnake ruengchaicharnkij
      ]
20
    },
21
    {
22
      "id": "supervisor",
23
      "name": "Supervisor",
24 10 karnake ruengchaicharnkij
      "permissions": [
25 11 karnake ruengchaicharnkij
        "admin_onboarding::data::checker",
26
        "admin_onboarding::data::approver"
27 5 karnake ruengchaicharnkij
      ]
28
    }
29 8 karnake ruengchaicharnkij
  ]
30 1 karnake ruengchaicharnkij
}
31
```
32 5 karnake ruengchaicharnkij
}}
33
34
{{collapse(React Hook...)
35
``` javascript
36
function usePagePermission(pageId: string, sectionId: string) {
37
  const { userRole, config } = useAuth()
38
39
  return {
40
    canCheck:   hasPermission(config, userRole, pageId, sectionId, 'checker'),
41
    canMake:    hasPermission(config, userRole, pageId, sectionId, 'maker'),
42
    canApprove: hasPermission(config, userRole, pageId, sectionId, 'approver'),
43
  }
44
}
45
46
// ใน component
47
function OnboardingPage() {
48
  const { canMake, canApprove } = usePagePermission('admin_onboarding', 'admin_onboarding_data')
49
50
  return (
51
    <div>
52
      {canMake    && <button>Edit</button>}
53
      {canApprove && <button>Approve</button>}
54
    </div>
55
  )
56
}
57
```
58
}}
59 7 karnake ruengchaicharnkij
60 6 karnake ruengchaicharnkij
{{collapse(Approval DB schemas...)
61
```sql
62
63
```
64
}}
65 1 karnake ruengchaicharnkij
**Enumbulator**
66
67
|Permission_name |Permission_id |
68
|--|--|
69
|maker  |11  |
70
|checker |12  |
71
|approver |13 |