เทคนิคการเซ็ต Group ID ของ User ใน Elastix จากดาต้าเบสโดยตรง
โพสต์แล้ว: 16 ม.ค. 2012 10:19
หากเราเผลอไปเซ็ต Group ของ User=admin ในหน้าเว็บ User Management เป็นค่าอื่นที่ไม่ใช่ "administrator" ผลก็คือเราจะมองไม่เห็นทุกเมนู เมนูจะหายไปเยอะมาก ก็ตามสิทธิของแต่ละ Group หน่ะครับ ผมมีวิธีที่จะตรวจสอบและแก้ไขให้กลับไปเป็นเหมือนเดิมโดยไม่ต้องลง Elastix ใหม่ วิธีค่อนข้างยาวนะครับแต่เน้นให้เข้าใจลองทำตามทีละข้อๆครับ
Elastix เก็บ User, Password, Group Permission ที่เราคอนฟิกหน้า User Management ไว้ในดาต้าเบส SQLite ครับ (ไม่ใช่ MySQL) ดาต้าเบสเก็บอยู่ในไฟล์ /var/www/db/acl.db
1. เช็คว่า user=admin มีค่า id_user เท่าไหร่
ผลลัพท์จะอยู่ในฟอร์แม็ตแบบนี้
id|name|description|md5_password|extension
เช่น
1|admin||3002911fe1675ef178df94016e248c4|
จะเห็นว่า user=admin มีค่า id=1 เราจะเอาค่านี้มาเป็น id_user ในเทเบิลต่อๆไป
2. เช็คว่า user=admin อยู่ใน group ไหน
ซึ่งดีฟอลท์ของ Elastix เขาทำไว้ 3 groups คือ 1=administartor, 2=Operador, 3=Extension ซึ่งต้องเป็น group administrator เท่านั้นถึงจะเห็นได้ทุกเมนู
ผลลัพท์จะอยู่ในฟอร์แม็ตแบบนี้ id|id_user|id_group เช่น
1|1|1
2|2|2
ดูบรรทัดที่มี id_user=1 ครับ ซึ่งคือ admin จะเห็นว่ามีค่า id_group=1 ซึ่งคือ administrator อันนี้เป็นดีฟอลท์ ถ้าหากว่าค่า id_group ไม่ใช่ 1 ก็จะเห็นได้ไม่ครบทุกเมนู
3. เซ็ตค่า id_group ของเทเบิล acl_membership
ถ้าต้องการเซ็ตค่า id_group ของ admin กลับไปเป็น 1 ตามเดิม ให้รันคำสั่งนี้
ระวังเครื่องหมาย ' และ " ด้วยนะครับ
4. ลองเช็คดูอีกที
2|2|2
3|1|1
จะเห็นว่าค่า id_group ของ id_user=1 เปลี่ยนไปเป็น 1 แล้ว
5. เข้าหน้าเว็บ Elastix
ล๊อกอินด้วย admin ก็จะเห็นครบทุกเมนูตามเดิม
บทความที่เกี่ยวข้อง
เทคนิคการรีเซ็ต admin password ของ Elastix
Elastix เก็บ User, Password, Group Permission ที่เราคอนฟิกหน้า User Management ไว้ในดาต้าเบส SQLite ครับ (ไม่ใช่ MySQL) ดาต้าเบสเก็บอยู่ในไฟล์ /var/www/db/acl.db
1. เช็คว่า user=admin มีค่า id_user เท่าไหร่
- โค้ด: เลือกทั้งหมด
/usr/bin/sqlite3 /var/www/db/acl.db "SELECT * from acl_user"
ผลลัพท์จะอยู่ในฟอร์แม็ตแบบนี้
id|name|description|md5_password|extension
เช่น
1|admin||3002911fe1675ef178df94016e248c4|
จะเห็นว่า user=admin มีค่า id=1 เราจะเอาค่านี้มาเป็น id_user ในเทเบิลต่อๆไป
2. เช็คว่า user=admin อยู่ใน group ไหน
ซึ่งดีฟอลท์ของ Elastix เขาทำไว้ 3 groups คือ 1=administartor, 2=Operador, 3=Extension ซึ่งต้องเป็น group administrator เท่านั้นถึงจะเห็นได้ทุกเมนู
- โค้ด: เลือกทั้งหมด
/usr/bin/sqlite3 /var/www/db/acl.db "SELECT * from acl_membership"
ผลลัพท์จะอยู่ในฟอร์แม็ตแบบนี้ id|id_user|id_group เช่น
1|1|1
2|2|2
ดูบรรทัดที่มี id_user=1 ครับ ซึ่งคือ admin จะเห็นว่ามีค่า id_group=1 ซึ่งคือ administrator อันนี้เป็นดีฟอลท์ ถ้าหากว่าค่า id_group ไม่ใช่ 1 ก็จะเห็นได้ไม่ครบทุกเมนู
3. เซ็ตค่า id_group ของเทเบิล acl_membership
ถ้าต้องการเซ็ตค่า id_group ของ admin กลับไปเป็น 1 ตามเดิม ให้รันคำสั่งนี้
- โค้ด: เลือกทั้งหมด
/usr/bin/sqlite3 /var/www/db/acl.db "UPDATE acl_membership SET id_group='1' WHERE id_user='1'"
ระวังเครื่องหมาย ' และ " ด้วยนะครับ
4. ลองเช็คดูอีกที
- โค้ด: เลือกทั้งหมด
/usr/bin/sqlite3 /var/www/db/acl.db "SELECT * from acl_membership"
2|2|2
3|1|1
จะเห็นว่าค่า id_group ของ id_user=1 เปลี่ยนไปเป็น 1 แล้ว
5. เข้าหน้าเว็บ Elastix
ล๊อกอินด้วย admin ก็จะเห็นครบทุกเมนูตามเดิม
บทความที่เกี่ยวข้อง
เทคนิคการรีเซ็ต admin password ของ Elastix