Odoo: Users & Rights
Users เกิดแต่ใดมา? :
ก่อนอื่นต้องเข้าใจก่อนว่า User มีกันกี่ประเภท ในระบบเค้ามี 3 ประเภท แต่ละประเภททำงานต่างกัน แล้วมีอะไรบ้างล่ะ อย่างนี้เลย
- Internal User คือ User ที่สร้างขึ้นมาเพื่อใช้งานภายในระบบ ว่ากันตามสิทธิการใช้งานของแต่ละคนเลย แยกสิทธิ์ตามโมดูลกันไปเลย ที่สำคัญเมื่อสร้างแล้วเสียตังค์เลยนะเธอจ๋า อันนี้ต้องระวังว่าเราซื้อไว้เท่าไหร่ แต่มีทิคนิดหนึ่งเดี๋ยวค่อยเหลาให้ฟัง.....
- Portal คือ User ที่สร้างไว้สำหรับให้บุคคลภายนอกเข้ามาดูเอกสารได้บางอย่าง บางโมดูลเท่าที่ระบบกำหนดไว้ เห็นว่าสามารถโต้ตอบกับเว็บไซต์ของเรา ทำการซื้อ และดูเอกสารของตนเองที่เกี่ยวข้องกับการซื้อหรือการขายกับบริษัท (อันนี้ยังไม่ทดสอบใช้ดูน่ะ ฝากไว้ก่อนนิ ) แต่ที่รู้ ๆ ดูได้อย่างเดียวนะเธอ ที่สำคัญสร้างได้ไม่จำกัด และฟรีด้วย เราว่าเหมาะกับการประยุกต์ให้ลูกค้าภายนอก
- Public คือ อันนี้ไม่ชัดเจนเท่าไหร่ เอาเป็นว่าเราไม่ได้ใช้ล่ะกัน มองผ่านกันโล้ด !!
ที่นี้ก็มาบรรเลงการสร้าง user แบบฉบับของ TYK กันเลย
ลอกเค้าง่ายกว่า
ปกติเราสามารถสร้าง User ขึ้นมาเองได้ แต่ด้วยความยุ่งยากในการกำหนดสิทธิสามัญชน มันผูกอิลุงตุงนังอะไรไว้บ้างก็ไม่รู้ เรากลัวพลาด ทำให้สิทธิ์ที่กำหนดจากทางเค้ากลั่นกรองตั้งต้นมาดีแล้ว เลยใช้วิธีลอกเค้า ง่าย และเร็วกว่าเยอะ ( หรืออยากทำเองก็เอาน่ะตะเอง) ม่ะเตรียมสมุดและปากกา เตรียมลอกกัน
- เริ่มที่โมดูล Settings -> Gerneral Settings -> Manage Users


- ในหน้านี้เริ่มต้นระบบจะกรองข้อมูลเฉพาะ user ภายใน และ ที่ใช้งานอยู่ เราสามารถกรองดู ประเภท User หรือ User ที่ระงับการใช้งานไว้ ( Inactive user ) และยังสามารถดูสถานะ User ได้ด้วยนะ ขอบอก

- คลิ๊กไปที่ User ที่เราต้องการจะก๊อปปี้ สิทธิ์การใช้งานตามท้องเรื่องที่เค้าเคยกำหนดมาให้แล้ว เมื่อเข้ามาแล้ว ให้กดปุ่ม Action -> Duplicate ( สำเนา ) แล้วทำการเปลี่ยนชื่อผู้ใช้ และอีเมล์ให้ถูกต้องแล้ว Save ด้วยนะ แค่เนี่ยง่ายป่ะล่ะ แต่ยังไม่จบแค่นั้น อย่าลืมนะว่าการก๊อปปี้นี่มันเป็นการเพิ่ม User ขึ้นมา เท่ากับว่าคุณต้องเสียตังค์แล้วน่ะ ต้องดูว่าเราซื้อไว้ 70 User เกินอ่ะเปล่า
- อ้อเดี๋ยวนี้ การก๊อปปี้ User เค้าดันเขียนดักไว้ไม่ให้มี User ( Email ) และ Reference (รหัสพนง.อ้างอิง) ที่อยู่ใน Contract ซ้ำกันอีก มันจะ save บ่ได้เด้อ ต้อง ลบ Reference ออกก่อน แล้วค่อยก๊อปปี้น่ะ ก่อนลบ copy refence เดิม ไว้ก่อนนะ เพราะมันต้องกลับมาใส่คืนคนเก่าเค้านะ

- แล้วถ้ามันเกินล่ะ ก็ง่ายนิดเดียว เราก็ต้อง Archive ( ระงับ ) User ที่เค้าลาออกไปแล้วซิ ระงับ User เค้าไปเลย จำนวนก็เท่าเดิมล่ะ คืองี้ Odoo เค้าระบุไว้ว่า เค้าจะนับจำนวนที่ใช้งานจริง ขอแค่ไม่เกินจำนวนที่ซื้อก็แค่นั้น

- เพื่อความมั่นใจ เราสามารถ ทดสอบการ Login user ที่เราสร้างขึ้นมาใหม่ ตรวจสอบความเรียบร้อยอีกรอบว่าสิทธิ์ที่เราเป็นกังวล มันจะหลุดไหม ก็ทำการ Change Password User แล้วทดสอบโล้ด
- สิ่งที่ต้องตั้งสติต่อ การก็อปปี้ User จะเกิดการสร้างรายชื่อ Contacts อัตโนมัติเลย เราจะต้องตามไปแก้ไข รหัสพนง. ให้ถูกต้องด้วย โดยกดตรงรายชื่อหัวข้อ Related Partner และ แก้ไขตรง Reference ที่สำคัญอย่าลืม Save ด้วยนะ


กำหนดสิทธิ์โมดูลพื้นฐาน
เมื่อเราจัดการเรื่อง Users แล้ว ยังสามารถกำหนดสิทธิ์โมดูลแบบพื้นฐาน ง่าย ๆ ได้ แบบมาตรฐานของ Odoo ที่มีอยู่แล้ว ในแท๊ป Access Rights โดยกำหนดให้ Users นั้นสามารถใช้อะไรได้บ้าง ซึ่งถ้าสังเกตุ มันคือ กลุ่ม ที่จะอธิบายต่อหลังจากนี้

สิทธิ์การเข้าถึง
การกำหนดสิทธิ์การเข้าถึง แสดง หรือ ซ่อน โมดูล / เมนูหลัก-ย่อย / ปุ่มคำสั่ง / ฟิลด์ข้อมูล เพื่อความง่ายในการจัดการ จะต้องเปิดโหมดนักพัฒนา หรือ Debug โดยตอนนี้ User ที่มีสิทธิ์ทำได้ จะมีแค่ MIS / DC / IT ซึ่งเป็นสิทธิ์พิเศษ โดยมี 2 สิ่ง ที่เราจะวนเวียนยุ่งกับมันไปตลอด คือ
- Groups คือ กลุ่มสิทธิ์ ที่มี User อยู่ในกลุ่มนั้น ๆ ขึ้นอยู่กับเอาไปผูกกับอะไรไว้บ้าง ซึ่งมีทั้งเป็นมาตรฐานของ Odoo และ สร้างเฉพาะขึ้นมาใหม่เอง
- Access Rights คือ สิทธิ์ลงรายละเอียดกำหนดว่าให้ ดู / แก้ไข / สร้าง / ลบ อันนี้ถือเป็นมาตรฐานของ Odoo ทาง C+ เค้าแนะนำว่าถ้าไม่เข้าใจอย่าไปแตะมันดีกว่า เพราะพลาดมา ยาว
- Restrict User คือ User ที่กำหนดไม่ให้เข้าถึง หรือ เห็นในเมนู จะรักใครไม่ชอบใครก็ตรงนี้ล่ะ
Groups พี่ใหญ่ คุมทุกซอย
เริ่มจากภาพใหญ่ของ Odoo ต้องเริ่มคุมจาก Groups ก่อน โดย Odoo เค้ามีกลุ่มมาตรฐานมาให้อยู่แล้ว เราก็ล้อตามเค้าไปเลย ยกเว้นมีอะไรที่พิเศษ คงต้องสร้างขึ้นมาใหม่กันเอง งั้นเรามาเริ่มต้นจากพี่ใหญ่สุดกันเลย
- เปิดโหมดนักพัฒนา ( Developer Mode ) หรือ Debug น้องเต่าทอง นั่นล่ะ ก็ไปที่ Settings -> General Settings -> เลื่อนลงมาสุดหน้า จะเจอ Developer Tools กดตรง เปิดใช้งานโหมดนักพัฒนาซอฟต์แวร์ ( Activate the Developer Mode )

- หรือใครอยากเป็นเซลส์นักพัฒนา หรือ เซลส์เทพที่ชอบใช้กันจัง...... ก็ง่าย ๆ แค่พิมพ์เลข 1 ไปหลัง web?debug=# แล้วกด Enter ในหน้าไหนก็ได้ของ Odoo ในช่อง Address ของโปรแกรมท่องอินเตอร์เน็ตที่เราใช้กัน ก็จะเข้าสู่โหมดน้องเต่าทองล่ะ สังเกตุตรงหัวด้านบนจะมีน้องเต่าทองบินมาปรากฏให้เห็นล่ะ


- ถ้าเราอยู่หน้า Settings อยู่แล้วก็ง่ายเลย ไปกันต่อ Settings -> เมนู Users & Companies -> Groups หน้านี้จะรวมสิทธิ์ของกลุ่ม ที่ผูก Users ไว้กับหน้าต่าง ๆ เราสามารถพิมพ์ชื่อค้นหาโมดูลที่เราสนใจได้ เช่น Sales , Account เป็นต้น เราก็จะโฟกัสกันง่ายขึ้น

- แล้วเราจะดูยังไงล่ะ ว่ามันผูกสัมพันธ์กับใครไว้บ้าง เมื่อเราลองกดเข้าไปดูซักกลุ่มหนึ่ง มันมีสิ่งที่บอกเราไว้ที่มีสาระสำคัญดังนี้
- Users = กลุ่มนี้มี Users ไหนบ้างที่มีผลกระทบกับเค้า
- Menus = กลุ่มนี้มีผลกระทบกับเมนูไหนบ้าง และภายในยังกำหนด Restrict Users ที่ไม่ให้เห็นได้อีก
- Access Rights = กลุ่มนี้มีสิทธิ์การใช้งานอย่างไร ในแต่ละโมเดล ( Model ) หรือ ในแต่ละหน้า ในเมนูนั้น ๆ เช่น ดูอย่างเดียว (Read) / แก้ไขได้ (Write ) / สร้างใหม่ ( Create ) / ลบได้ ( Delete ) ซึ่งอันนี้จะละเอียดมาก ถ้าไม่จำเป็นอย่าไปยุ่งเชียว ยกเว้นเราชำนาญมาก ๆ แล้ว


Access Rights พี่กลาง คุมให้ทำอะไร

- Access Rights แล้วเราจะดูยังไงว่า มันมีผลกระทบกับหน้าไหนบ้างล่ะ เอ้อเนอะ ดูก็ยัง งง ๆ กับความหมายในช่อง Name กับ Model กันนิดหนึ่ง ก็ขออธิบายอย่างที่เข้าใจนะว่า เหมือนเค้าเรียงลำดับความสำคัญจากบนลงล่างมา ว่ากันตามเมนู แล้วไล่ลงมาถึงหน้านั้น ๆ โดยจุดสังเหตุคือ ชื่อโมดูลหลัก.โมดูลย่อย ยกตัวอย่างให้เห็นภาพ account.account.readonly -> account.journal -> account.move readonly

- account.account คือ หน้าโมดูลหลัก Account
- account.journal คือ หน้าโมดูลหลัก Account -> หน้าโมดูลย่อย Journal
- account.move คือ หน้าโมดูลหลัก Account -> หน้าโมดูลย่อย Journal -> หน้าโมดูลย่อย Journal Entry โดยจุดสังเหตุหน้า Journal Entry ให้ดูที่ URL ช่อง Address ของโปรแกรมท่องอินเตอร์เน็ต มันจะระบุหน้าเหมือนกัน account.move โป๊ะเช๊ะ !! นั่นล่ะคือความหมาย มันจะมีผลกระทบในหน้านั้นเลย

Restrict Users น้องเล็ก คุมไม่ให้เห็น
- Restrict Users เมื่อเปิดสิทธิ์ให้ใช้ได้ในภาพใหญ่แล้ว เค้าจะกรองออกในภาพย่อยว่า ไม่ให้เห็นเมนูนี้ /ปุ่มนี้ / ฟิลด์นี้ ชนิดที่ว่าไม่ชอบใครก็อย่าได้เข้ามาเชียว ซึ่งจะทำงานควบคู่กับโมดูล Studio ที่เอาไว้สำหรับจัดการแสดงผลของแต่ละหน้าด้วย ซึ่งการที่ใช้ได้จะต้องมีสิทธิ์สูง แต่ไม่สุดของระบบ เอาล่ะกำหนดยังไงมาดูกัน

- คลิ๊กไอคอน ตรงไขควง&ประแจ เพื่อเข้าโมดูล Studio ซึ่งจะอยู่ทุกหน้า ก็สามารถปรับเปลี่ยนหน้าตากันได้เลย โดยขอเริ่มที่การจำกัดการเห็น ของเมนูต่าง ๆ โดยการกดปุ่ม Edit Menu

- ให้เลือกเมนูที่สนใจว่าจะจำกัดเมนูไหน โดยต้องพิจารณาจำกัดสิทธิ์เรียงลำดับเมนูหลักก่อน แล้วมาเมนูย่อย ขึ้นอยู่ว่าจะจำกัดตั้งแต่เมนูไหน เช่น Accounting คือเมนูหลัก ถ้าไม่ต้องการให้เห็นตั้งแต่เมนูหลัก เมนูย่อยก็ไม่ต้องไปกำหนดให้เมื่อยตุ้ม เมนูย่อยก็ไม่เห็นอยู่แล้ว แต่ถ้าต้องการให้ไม่เห็นเฉพาะเมนูย่อยใต้ Accounting บางเมนูค่อยมากำหนด ไม่ให้เห็นแต่ละเมนูย่อยอีกที โดยคลิ๊กตรงไอคอนสมุด&ดินสอ

- คลิ๊ก Restrict Users แล้วกำหนด User ด้วย Add a line ได้ตามใจชอบ ไม่ชอบใครก็จำกัดให้สิ้น

- นอกจากนั้น เรายังสามารถจำกัดการแสดงผลของฟิลด์ได้อีกด้วย โดยทำการคลิ๊กเลือกฟิลด์ที่เราต้องการ ในหน้า Studio แล้วกำหนดกลุ่มที่จำกัดได้ ในใต้ช่อง Limit visibility to groups ในแท็ป Properties เลือกได้มาก 1 กลุ่ม

- นอกจากนี้เรายังกำหนดสิทธิ์ที่ปุ่มกด ในส่วนหัวได้อีกด้วย หลักการเดิมเลย ทำที่หน้า Studio คลิ๊กท่ี่ปุ่มสนใจ ที่ช่อง Limit visibility to groups ในแท็ป Properties เลือกได้มาก 1 กลุ่ม เช่นเคย

แค่นี้ก็สามารถบริหารจัดการเรื่อง Users และ สิทธิ์การใช้งานได้แล้วกระมัง ที่เหลือก็ไปลองทดสอบวิชาได้ใน Staging ( ฐานข้อมูลจำลอง ) ก่อนได้ ก่อนทำจริง เพื่อความมั่นใจ
Tip & Trick :
กำหนดสิทธิ์ให้ Export ได้
- การกำหนดสิทธิ์ให้ Export ได้นั้น จะถูกสร้างขึ้นใน กลุ่ม Technical เฉพาะเจาะจงสำหรับเรื่องนี้โดยเฉพาะ ซึ่งต้องกำหนด Users ที่ต้องการลงไปก่อน ถึงจะทำได้ คือ กลุ่ม Technical / Access to export feature เมื่อกำหนดแล้วจะ Export ได้ทุกหน้าที่สามารถทำได้ในปุ่ม Actions -> Export ไม่สามารถควบคุมเฉพาะบางหน้าได้

คีย์ลัดค้นคว้า คว้าดาว
เพื่อดูเป็นมืออาชีพเห็นเค้าทำกัน เลยเอาเทคนิคนี้มาฝาก Pop up คีย์ลัดไว้ค้นหา และกระโดดไปหน้าโน้นหน้านี้ได้เร็วขึ้น เพียงแค่กดปุ่มบนคีย์บอร์ด Ctrl+K แล้วตามด้วย / อยากคว้าอะไรก็คว้าหาเอาเองน่ะ โดยเฉพาะถ้าต้องการเข้า debug โหมด ( น้องเต่าทอง ) ก็พิมพ์คำว่า debug กด Enter รอซักพัก ก็เข้าได้ล่ะ

กำหนดไม่ให้ใช้งานโมดูลใหญ่
มันเป็นเรื่องละเอียดอ่อน มีสิ่งที่ซ่อนอยู่ที่ต้องตามเข้าไปดูเพิ่มเติมในการกำหนดสิทธิ์ คือ ถ้าไม่ต้องการให้เข้า หรือให้เข้าโมดูลใหญ่ ก็ต้องกำหนดใน User เข้าไปใน Restrict User หรือ เอาออก มันจะมองไม่เห็น หรือ เห็นทั้งโมดูลเลย ทะลายกำแพงสิทธิ์ก่อนหน้าไปเลย แม้แต่กำหนดใน Group และ Access Right ไปแล้วก็ตาม เช่น User [email protected] ต้องใช้งานโมดูล Recruit ( รับสมัครงาน ) ต้องเอา User เค้าออกจาก Restict User โดยก่อนหน้ามีกำหนดเค้าไว้ไม่ให้เห็น โดยวิธีการทำดังนี้เลย
- เข้าหน้า Module หลักก่อน เช่น Recruitment ( รับสมัครงาน )
- คลิ๊กเข้าสู่ Studio ( รูปคีมกับไขควง )
- กด Edit Menu
- กดปุ่มดินสอ โมดูลสูงสุด เช่น Recruitment ( รับสมัครงาน )
- Restrict Users กด X เพื่อเอา User ออก ก็เข้าได้ล่ะ ในทางกลับกันถ้าเอาใส่เข้า ก็เลื่อนลงมาด้านล่าง Add line เลือก User ที่ไม่ต้องการให้ใช้ ก็จะใช้งานไม่ได้ล่ะ จบด้วยประการทั้งปวง....

