Role & Permissions — การจัดการสิทธิ์ใน ERPNext Accounting
ภาพรวมระบบ Permission ของ ERPNext
ERPNext ใช้ Role-Based Access Control (RBAC) — กำหนด permission ที่ Role ไม่ใช่ที่ User โดยตรง
User 1 คนสามารถมีได้หลาย Role และระบบจะรวม permission จากทุก Role ให้อัตโนมัติ
Permission แต่ละอย่างมี 3 ระดับ:
- Role Level — Role นี้ทำอะไรกับ DocType นี้ได้บ้าง
- Document Level — User เห็นเฉพาะ document ที่ตัวเองเกี่ยวข้องหรือไม่
- Field Level — Field บางอย่างใน document ซ่อนหรือล็อกตาม Role
Roles หลักที่ใช้ใน Accounting Module
1. Accounts Manager
คือใคร: หัวหน้าฝ่ายบัญชี / CFO / ผู้จัดการการเงิน
| สิทธิ์ | ทำได้ |
|---|---|
| Read / Write / Create | Sales Invoice, Purchase Invoice, Payment Entry, Journal Entry ทั้งหมด |
| Submit / Cancel / Amend | ทุก Accounting document |
| Setup | Chart of Accounts, Tax Config, Payment Terms, Company Settings |
| Reports | รายงานการเงินทั้งหมด — GL, P&L, Balance Sheet, AR/AP Aging |
| WHT | WHT Certificate, Tax Withholding Category |
| Period Closing | สามารถทำ Period Closing Voucher |
Role นี้เห็นและแก้ไขได้ทุกอย่าง — ควรให้แค่ผู้จัดการขึ้นไปเท่านั้น
2. Accounts User
คือใคร: เจ้าหน้าที่บัญชี ที่ทำ transaction รายวัน
| Document | Read | Write | Create | Submit | Cancel |
|---|---|---|---|---|---|
| Sales Invoice | ✅ | ✅ | ✅ | ✅ | ❌ |
| Purchase Invoice | ✅ | ✅ | ✅ | ✅ | ❌ |
| Payment Entry | ✅ | ✅ | ✅ | ✅ | ❌ |
| Journal Entry | ✅ | ✅ | ✅ | ❌ | ❌ |
| Chart of Accounts | ✅ | ❌ | ❌ | — | — |
| Tax Configuration | ✅ | ❌ | ❌ | — | — |
| WHT Certificate | ✅ | ✅ | ✅ | ✅ | ❌ |
| Financial Reports | ✅ | — | — | — | — |
Cancel และ Amend — ต้องให้ Accounts Manager ทำเท่านั้น
3. Finance Manager
คือใคร: ผู้จัดการการเงิน ที่ approve payment แต่ไม่ได้ key ข้อมูลเอง
| Document | Read | Submit | Cancel | หมายเหตุ |
|---|---|---|---|---|
| Payment Entry | ✅ | ✅ | ✅ | อนุมัติการจ่ายเงิน |
| Sales Invoice | ✅ | ❌ | ❌ | ดูได้อย่างเดียว |
| Purchase Invoice | ✅ | ❌ | ❌ | ดูได้อย่างเดียว |
| Financial Reports | ✅ | — | — | รายงานทั้งหมด |
4. Purchase User / Purchase Manager
คือใคร: ฝ่ายจัดซื้อ — ทำ PO แต่ไม่ได้ทำบัญชี
| Document | สิทธิ์ |
|---|---|
| Purchase Order | Read / Write / Create / Submit |
| Purchase Receipt | Read / Write / Create / Submit |
| Purchase Invoice | Read เท่านั้น — ไม่ Create |
| Payment Entry | ❌ ไม่มีสิทธิ์ |
| Chart of Accounts | ❌ |
Accounts User จะ Create Purchase Invoice จาก PO ที่ Purchase User ทำไว้
5. Sales User / Sales Manager
คือใคร: ฝ่ายขาย — ทำ Quotation, Sales Order
| Document | สิทธิ์ |
|---|---|
| Quotation / Sales Order | Read / Write / Create / Submit |
| Delivery Note | Read / Write / Create / Submit |
| Sales Invoice | Read เท่านั้น — ไม่ Create |
| Payment Entry | ❌ ไม่มีสิทธิ์ |
Accounts User จะ Create Sales Invoice จาก Sales Order ที่ Sales User ทำไว้
6. Auditor
คือใคร: ผู้ตรวจสอบบัญชี ภายในหรือภายนอก
| Document | สิทธิ์ |
|---|---|
| ทุก Accounting Document | Read เท่านั้น |
| Financial Reports | ✅ ดูได้ทั้งหมด |
| General Ledger | ✅ |
| WHT Certificate | Read เท่านั้น |
ห้าม Write / Submit / Cancel ทุกกรณี
Permission Matrix สรุปภาพรวม
| Document | Accounts Manager | Accounts User | Finance Manager | Purchase User | Sales User | Auditor |
|---|---|---|---|---|---|---|
| Chart of Accounts | ✅ Full | 👁 Read | 👁 Read | ❌ | ❌ | 👁 Read |
| Company Setting | ✅ Full | ❌ | ❌ | ❌ | ❌ | ❌ |
| Tax Configuration | ✅ Full | 👁 Read | ❌ | ❌ | ❌ | 👁 Read |
| Payment Terms | ✅ Full | 👁 Read | ❌ | ❌ | ❌ | ❌ |
| Sales Invoice | ✅ Full | ✍ Create/Submit | 👁 Read | ❌ | 👁 Read | 👁 Read |
| Purchase Invoice | ✅ Full | ✍ Create/Submit | 👁 Read | 👁 Read | ❌ | 👁 Read |
| Payment Entry | ✅ Full | ✍ Create/Submit | ✅ Full | ❌ | ❌ | 👁 Read |
| Journal Entry | ✅ Full | ✍ Create only | ❌ | ❌ | ❌ | 👁 Read |
| WHT Certificate | ✅ Full | ✍ Create/Submit | 👁 Read | ❌ | ❌ | 👁 Read |
| Financial Reports | ✅ Full | ✅ Full | ✅ Full | ❌ | ❌ | ✅ Full |
| General Ledger | ✅ Full | ✅ Full | ✅ Full | ❌ | ❌ | ✅ Full |
Legend: ✅ Full = Read/Write/Create/Submit/Cancel | ✍ = Create/Submit ไม่ Cancel | 👁 = Read only | ❌ = ไม่มีสิทธิ์
Role Profiles ที่แนะนำ
| Profile Name | Roles ที่รวม | ใช้กับใคร |
|---|---|---|
| Finance Staff | Accounts User, Employee | เจ้าหน้าที่บัญชีทั่วไป |
| Finance Lead | Accounts Manager, Accounts User, Employee | หัวหน้าบัญชี |
| Procurement Staff | Purchase User, Employee | เจ้าหน้าที่จัดซื้อ |
| Procurement Lead | Purchase Manager, Purchase User, Employee | หัวหน้าจัดซื้อ |
| Sales Staff | Sales User, Employee | พนักงานขาย |
| Sales Lead | Sales Manager, Sales User, Employee | หัวหน้าขาย |
| Read-Only Auditor | Auditor | ผู้ตรวจสอบ |
การตั้งค่า Permission ใน ERPNext
วิธี Assign Role ให้ User
- ไปที่
Settings > Users→ เลือก User - Tab Roles → Add Row → เลือก Role
- กด Save
วิธี Assign Role Profile
- เปิด User
- Tab Role Profiles → เลือก Profile
- ระบบ assign ทุก Role ใน Profile ให้อัตโนมัติ → Save
วิธีตรวจสอบ Permission ของ Role
- ไปที่
Settings > Users and Permissions > Role Permissions Manager - เลือก Document Type (เช่น Payment Entry)
- ระบบแสดงทุก Role และสิทธิ์แต่ละอย่าง
Common Mistakes เรื่อง Permissions
| ปัญหา | สาเหตุ | วิธีแก้ |
|---|---|---|
| User submit Invoice ไม่ได้ | Role ไม่มีสิทธิ์ Submit | ตรวจสอบ Role Permission Manager — เพิ่ม Submit ให้ Role นั้น |
| User เห็น Invoice ของคนอื่นไม่ได้ | User Permission ถูก restrict | ตรวจสอบ User Permissions — อาจมีการ restrict ตาม Company หรือ Cost Center |
| Cancel ไม่ได้ทั้งที่เป็น Accounts User | Accounts User ไม่มีสิทธิ์ Cancel โดย design | ให้ Accounts Manager Cancel ให้ |
| ใช้ System Manager ทดสอบแล้วทุกอย่างผ่าน แต่ User จริงทำไม่ได้ | System Manager bypass ทุก permission | ทดสอบด้วย User ที่มี Role จริงเสมอ — ห้ามใช้ System Manager ทดสอบ |
| Auditor แก้ไขข้อมูลได้ | ให้ Write permission เกิน | Auditor ต้อง Read only เท่านั้น — ตรวจสอบและ revoke Write/Submit |
Workflow สามารถ override permission ได้ — ถ้ามี workflow Submit จะต้องผ่าน approval ก่อน ไม่ใช่แค่มี Submit permission
ทุกครั้งที่ตั้ง permission ใหม่ให้ทดสอบด้วย incognito / user account จริงก่อน go-live