ผู้ใช้และสิทธิ์การเข้าถึง¶
HEMMS ใช้โมเดลความปลอดภัยมาตรฐานของ Odoo: ผู้ใช้ทุกคนเป็นสมาชิกของ กลุ่ม หนึ่งกลุ่มขึ้นไป กลุ่มให้ ACL (read/write/create/unlink ระดับตาราง) และ record rule กรองสิ่งที่แต่ละกลุ่มเห็นได้ในระดับแถวเพิ่มเติม หน้านี้ครอบคลุมกลุ่มที่ HEMMS เพิ่มเข้ามา วิธีกำหนดกลุ่ม และการแมป บทบาทของโรงพยาบาลกับกลุ่ม Odoo ที่แนะนำ
โมเดลความปลอดภัยของ Odoo ใน 60 วินาที¶
| แนวคิด | ทำอะไร | อยู่ที่ไหน |
|---|---|---|
กลุ่ม (res.groups) | ชุดสิทธิ์ที่มีชื่อ | ir.model.data → เรกคอร์ด XML |
ACL (ir.model.access) | สิทธิ์ CRUD รายโมเดลสำหรับกลุ่ม | security/ir.model.access.csv |
Record rule (ir.rule) | ตัวกรอง domain ที่ใช้กับกลุ่มสำหรับหนึ่งโมเดล | security/*.xml |
ACL และ record rule รวมกันด้วย AND: ผู้ใช้ต้องผ่านทั้ง ACL และ record rule ทุกข้อที่เกี่ยวข้องจึงจะเข้าถึงแถวได้ กลุ่มที่ไม่มี record rule บนโมเดลใดจะได้สิทธิ์เข้าถึงโดยไม่ถูกกรอง (ภายใต้ ACL ของกลุ่มนั้น)
กลุ่ม Odoo / OCA ที่เกี่ยวข้อง¶
เหล่านี้เป็นกลุ่มฐานรากที่ HEMMS สร้างต่อยอด พวกมันไม่ได้ถูกกำหนด โดย HEMMS — มาพร้อมกับ Odoo หรือโมดูล maintenance ของ OCA
| Group XML ID | ชื่อที่แสดง | บทบาทโรงพยาบาลทั่วไป |
|---|---|---|
base.group_user | Internal User | บุคลากรใด ๆ ที่มี login |
maintenance.group_equipment_manager | Maintenance / Equipment Manager | ช่างเทคนิค BME หรือ BME manager |
base.group_system | Administration / Settings | IT admin, DPO |
base.group_user คือพื้นฐาน — ผู้ใช้ HEMMS ที่เข้าสู่ระบบ ทุกคน มีกลุ่มนี้ maintenance.group_equipment_manager คือบทบาท BME มันบ่งบอกถึง base.group_user และปลดล็อกการสร้างคำขอบำรุงรักษา การแก้ไขเครื่องมือแพทย์ ฯลฯ base.group_system คือ Odoo admin เต็มรูปแบบ และควรถูกกำหนดขอบเขตอย่างรัดกุม (1–2 คน)
กลุ่มเฉพาะของ HEMMS¶
เหล่านี้ถูกกำหนดในโฟลเดอร์ addons/roots/roots_hemms_*/security/
roots_hemms_asset_inspection — ขั้นตอน ปจป. ประจำปี¶
กำหนดใน hemms_security_groups.xml
| Group XML ID | ชื่อที่แสดง | สิทธิ์ |
|---|---|---|
roots_hemms_asset_inspection.group_hemms_asset_officer | Asset Officer | บ่งบอกถึง maintenance.group_equipment_manager สามารถสร้าง จัดการ ส่ง และพิมพ์รายงานการตรวจสอบทรัพย์สินประจำปีได้ ทุกแผนก |
roots_hemms_asset_inspection.group_hemms_inspection_committee | Inspection Committee Member | บ่งบอกถึง base.group_user สามารถดูเรกคอร์ดการตรวจสอบทั้งหมด และแก้ไขสภาพ/ความเสียหาย/หมายเหตุบนบรรทัดของการตรวจสอบที่กำลังดำเนินอยู่ ไม่สามารถสร้างการตรวจสอบได้ |
roots_hemms_ha_report — รายงาน PM ประจำปีของ HA Thailand (Q5)¶
โมดูลรายงาน HA ของ Q5 ไม่ได้กำหนดกลุ่มใหม่ แต่กลับมาพร้อม record rule ที่กำหนดขอบเขตตามแผนก (ha_report_security.xml) ที่ผูกกับ base.group_user: ผู้ที่ไม่ใช่ manager จะเห็นเฉพาะรายงาน HA ของ แผนกที่ตนเป็นสมาชิก (department_id.member_ids.user_id รวมถึง ตน) หรือรายงานที่ตนเป็นผู้เขียน
สมาชิกของ maintenance.group_equipment_manager ไม่อยู่ภายใต้กฎ ข้อนี้ ดังนั้น BME manager จึงเห็นรายงานทั้งหมดทุกแผนก
roots_hemms_mass_import — record rule ที่กำหนดขอบเขตตามผู้อัปโหลด (Q6)¶
รูปแบบเดียวกัน: ไม่มีกลุ่มใหม่ มีเพียง record rule ที่ผูกกับ base.group_user ซึ่งกรอง hemms.import.batch เหลือเฉพาะแถวที่ผู้ใช้สร้างหรือ commit manager จะเห็น batch ทั้งหมด
roots_hemms_service_contracts — เขียนได้เฉพาะ manager (Q3)¶
ACL ให้สิทธิ์ base.group_user แบบอ่านอย่างเดียว และให้สิทธิ์ CRUD เต็มรูปแบบเฉพาะกับ maintenance.group_equipment_manager หมายความว่าบุคลากรที่เข้าสู่ระบบคนใด ก็ตามสามารถ ดู สัญญาบริการได้ แต่มีเพียง BME manager เท่านั้นที่สร้างหรือแก้ไขได้
การกำหนดกลุ่มให้กับผู้ใช้¶
- ไปที่ Settings → Users & Companies → Users
- เปิดหรือสร้างผู้ใช้
- ภายใต้แท็บ Access Rights เลื่อนไปที่ส่วน Maintenance:
- ติ๊ก Maintenance = Administrator เพื่อให้สิทธิ์
maintenance.group_equipment_manager - ติ๊ก Asset Officer หรือ Inspection Committee Member ตามต้องการ
- ติ๊ก Maintenance = Administrator เพื่อให้สิทธิ์
- ภายใต้ Administration ตั้งเป็น Settings เพื่อให้สิทธิ์
base.group_system(admin / DPO เท่านั้น) - บันทึก สิทธิ์ที่มีผลของผู้ใช้จะอัปเดตในการเข้าสู่ระบบครั้งถัดไป
ใช้โหมดนักพัฒนาเพื่อดู XML ID
เมื่อเปิดโหมดนักพัฒนา การวางเมาส์เหนือฟิลด์กลุ่มจะแสดง XML ID (base.group_system ฯลฯ) — มีค่ายิ่งเมื่อต้องจับคู่ตารางข้างบน กับ checkbox ใน UI
การแมปบทบาทที่แนะนำสำหรับการติดตั้งในโรงพยาบาล¶
นี่คือการแมปที่ Trinity Roots ส่งมอบโดยค่าเริ่มต้น ปรับตามลูกค้าได้
| บทบาทโรงพยาบาล | กลุ่ม | หมายเหตุ |
|---|---|---|
| Ward Nurse | base.group_user เท่านั้น | สามารถยื่นคำขอบำรุงรักษา เห็นเครื่องมือแพทย์ในหอผู้ป่วยของตน ดูตาราง PM ไม่สามารถแก้ไขข้อมูลหลักของเครื่องมือแพทย์หรือปิดคำขอได้ |
| BME Technician | base.group_user + maintenance.group_equipment_manager | สามารถเลื่อนคำขอผ่านขั้นตอน บันทึกอะไหล่ อัปเดตสภาพเครื่องมือแพทย์ ถูกจำกัดโดย record rule บนการตรวจสอบ (เห็นเฉพาะแผนกตน) |
| BME Manager | base.group_user + maintenance.group_equipment_manager + roots_hemms_asset_inspection.group_hemms_asset_officer | งาน BME เต็มรูปแบบ: แก้ไขสัญญาบริการ ลงนามอนุมัติการตรวจสอบ พิมพ์รายงาน HA ได้ทุกแผนก |
| Inspection Committee Member | base.group_user + roots_hemms_asset_inspection.group_hemms_inspection_committee | ทบทวนและลงนามอนุมัติบรรทัดการตรวจสอบ แต่ไม่สามารถสร้างการตรวจสอบได้ โดยทั่วไปคือหัวหน้าทางคลินิก ไม่ใช่ BME |
| Admin / DPO | base.group_user + maintenance.group_equipment_manager + base.group_system | admin ระบบเต็มรูปแบบ — ติดตั้งโมดูล จัดการผู้ใช้ ดำเนินการสำรองข้อมูล/กู้คืน ควรเป็น 1–2 คนต่อโรงพยาบาล |
| Vendor / External technician | base.group_portal (Odoo portal user) | เข้าถึง portal แบบอ่านอย่างเดียวสำหรับสัญญาบริการของตนเองและคำขอที่ได้รับมอบหมาย ไม่ใช่ internal user เต็มรูปแบบ — ไม่กิน seat Enterprise ที่ต้องจ่าย |
record rule ที่ทำงานจริง — ตัวอย่างที่ลงรายละเอียด¶
ช่างเทคนิค BME (Tha) สังกัดแผนก Cardiology เธอมี maintenance.group_equipment_manager และไม่มีอะไรอื่น
| การกระทำ | การแก้ปัญหา |
|---|---|
| เปิด Maintenance → Requests | ACL บอกว่าเธออ่าน maintenance.request ได้ ไม่มีกฎ HEMMS กรองเพิ่มเติม เธอเห็นคำขอทั้งหมด |
| เปิด HA Report → Annual Reports | ACL บอกว่าเธออ่าน hemms.ha.report ได้ กฎ Q5 บน base.group_user กรองเหลือ เฉพาะแผนกของเธอ + รายงานที่เธอเขียน เธอเห็น Cardiology + รายงานที่เธอเขียน |
| เปิด Mass Import → Batches | ACL บอกว่าเธออ่านได้ กฎ Q6 กรองเหลือ batch ที่เธออัปโหลดหรือ commit เธอเห็นเฉพาะ batch ของเธอเอง |
| ลงนามสัญญาบริการในฐานะผู้ลงนามฝ่ายลูกค้า | ACL อนุญาตให้อ่าน เธอไม่ได้อยู่ในกลุ่ม manager จึงแก้ไขไม่ได้ เธอใช้ขั้นตอนการลงนามซึ่งเป็น flow แยกที่อยู่บน sign_oca |
การเลื่อนเธอขึ้นเป็น maintenance.group_equipment_manager เปลี่ยน แค่ ACL เท่านั้น record rule บน base.group_user ยังคงมีผลเพราะเธอยังเป็น base user หากต้องการข้ามกฎรายงาน HA ที่กำหนดขอบเขตตามแผนก เธอต้องการกลุ่ม manager — ซึ่งเธอมีอยู่แล้ว สถานะ manager จะนำตัวกรองตามแผนกออกสำหรับ รายงาน HA เพราะกฎนั้นถูกกำหนดขอบเขตให้กับ base.group_user ไม่ใช่กลุ่ม manager Odoo ประเมินกฎเป็น OR ข้ามกลุ่มต่าง ๆ ของผู้ใช้สำหรับโมเดล เดียวกัน และกลุ่ม manager ไม่มีกฎ
การตรวจสอบว่าใครมีสิทธิ์อะไร¶
ในโหมดนักพัฒนา Settings → Technical → Security → Groups แสดงทุก กลุ่มพร้อมสมาชิก เทียบกับรายชื่อ HR ของคุณเป็นประจำทุกปีเป็น ส่วนหนึ่งของการทบทวนโดย DPO
สำหรับการตรวจสอบสิทธิ์รายผู้ใช้:
- เปิดผู้ใช้
- คลิกแท็บ Access Rights
- ทุกกลุ่มที่ติ๊กไว้คือสิทธิ์ที่ผู้ใช้รายนี้มี พิมพ์หรือส่งออก
หน้าที่เกี่ยวข้อง¶
- การตั้งค่าหลายบริษัท / หลายโรงพยาบาล — การกำหนดขอบเขตระดับสาขา เป็นอิสระจากการกำหนดขอบเขตระดับกลุ่ม
- สำหรับ DPO / การปฏิบัติตามข้อกำหนด — การเข้าถึงร่องรอยการตรวจสอบ
- สถาปัตยกรรม — เหตุใด HEMMS จึงเพิ่มกลุ่มน้อยมาก (เราต่อยอดบน Odoo / OCA แทนที่จะนิยามโมเดลความปลอดภัยใหม่)