ข้ามไปที่เนื้อหา

ผู้ใช้และสิทธิ์การเข้าถึง

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 เท่านั้นที่สร้างหรือแก้ไขได้

การกำหนดกลุ่มให้กับผู้ใช้

  1. ไปที่ Settings → Users & Companies → Users
  2. เปิดหรือสร้างผู้ใช้
  3. ภายใต้แท็บ Access Rights เลื่อนไปที่ส่วน Maintenance:
    • ติ๊ก Maintenance = Administrator เพื่อให้สิทธิ์ maintenance.group_equipment_manager
    • ติ๊ก Asset Officer หรือ Inspection Committee Member ตามต้องการ
  4. ภายใต้ Administration ตั้งเป็น Settings เพื่อให้สิทธิ์ base.group_system (admin / DPO เท่านั้น)
  5. บันทึก สิทธิ์ที่มีผลของผู้ใช้จะอัปเดตในการเข้าสู่ระบบครั้งถัดไป

ใช้โหมดนักพัฒนาเพื่อดู 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

สำหรับการตรวจสอบสิทธิ์รายผู้ใช้:

  1. เปิดผู้ใช้
  2. คลิกแท็บ Access Rights
  3. ทุกกลุ่มที่ติ๊กไว้คือสิทธิ์ที่ผู้ใช้รายนี้มี พิมพ์หรือส่งออก