Project

General

Profile

RBAC » History » Version 12

pasin sadsara, 04/20/2026 01:45 AM

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