PHP CI MANIA : ตอนที่ 15 สร้างเว็บเพจ แบบกำหนดรายการที่แสดงในตารางเฉพาะ หน่วยงาน/ผู้ใช้งาน ที่เป็นเจ้าของ เท่านั้น
นอกจากการกำหนดสิทธิ์ระดับหน้าเว็บในตอนที่แล้ว (PHP CI MANIA : ตอนที่ 14 วิธีสร้างเว็บเพจ Login Form และการตรวจสอบ แผนกที่สังกัด ของผู้ใช้งาน) เรายังสามารถกำหนดให้ลึกลงไปแบบเฉพาะเจาะจง ให้แสดงเฉพาะรายการที่ตนเองเป็นเจ้าของผู้บันทึกรายการเท่านั้นได้อีกด้วย
เช่นหน้าเว็บเพจที่เราสร้างไว้ในตอนก่อนหน้านั้น ถ้าเราไม่กำหนด "WHERE USER SESSION" ก็จะเห็นว่าในตารางรายการนั้น แสดงทุกรายการ ทั้งของ USER 01 และ USER Demo รวมกัน ทั้งที่การ Login เข้ามานั้นเป็นไอดีของ User1 ซึ่งที่จริงแล้วจะต้องแสดงเฉพาะของ User1 เท่านั้น
1. เริ่มจากหน้าตั้งค่า คลิกเลือก "Login Require"
2. จากนั้นเลื่อนไปในส่วนที่ 4 "กำหนดการค้นหา / ประเภทช่องป้อนข้อมูล ตาราง tb_product_order_master ( Master )" ที่คอลัมน์ "WHERE User Session" กำหนดไปที่ฟิลด์ที่เป็นรหัสอ้างอิงผู้ใช้งาน ในที่นี้คือ order_user_id ให้ระบุตัวเลือกเป็น "SESSION ไอดี ผู้ใช้งาน" (ซึ่งถ้าต้องการให้เห็นในระดับแผนก ก็สามารถอ้างอิงฟิลด์ที่เก็บรหัสแผนก และเลือก SESSION เป็น แผนกที่สังกัด)
3. เมื่อกำหนดชื่อต่างๆเรียบร้อย ก็คลิกสร้างไฟล์ Models, Views, JS และ Controller ให้เรียบร้อย (สำหรับ Version 0.6 จะมีปุ่ม "สร้างไฟล์ทั้งหมด")
4. จากนั้นให้คลิกลิงค์เพื่อดูตัวอย่าง(ในหน้า Controller) ก็จะพบกับหน้าเว็บที่เราสร้างเอาไว้ จะเห็นว่า จะต้อง Login ก่อนเข้าใช้งาน
5. ให้ล็อกอินด้วย user1 อีกครั้งเพื่อทดสอบการเข้าถึงหน้าเว็บ (ดูข้อมูล User ในตอนที่ 12 ข้อที่ 4)
สังเกตุได้ว่า รายการของ User คนอื่นๆ จะไม่แสดงออกมาปนกันแล้ว ข้อมูลในตารางรายการจะแสดงเฉพาะที่ตรงกับ SESSION ของผู้ที่กำลัง Login มาเท่านั้น
<< กำหนดสิทธิ์หน้าเว็บตาม แผนกที่สังกัด คำนวณผลรวมอัตโนมัติ เมื่อป้อนตัวเลข »
เช่นหน้าเว็บเพจที่เราสร้างไว้ในตอนก่อนหน้านั้น ถ้าเราไม่กำหนด "WHERE USER SESSION" ก็จะเห็นว่าในตารางรายการนั้น แสดงทุกรายการ ทั้งของ USER 01 และ USER Demo รวมกัน ทั้งที่การ Login เข้ามานั้นเป็นไอดีของ User1 ซึ่งที่จริงแล้วจะต้องแสดงเฉพาะของ User1 เท่านั้น
1. เริ่มจากหน้าตั้งค่า คลิกเลือก "Login Require"
2. จากนั้นเลื่อนไปในส่วนที่ 4 "กำหนดการค้นหา / ประเภทช่องป้อนข้อมูล ตาราง tb_product_order_master ( Master )" ที่คอลัมน์ "WHERE User Session" กำหนดไปที่ฟิลด์ที่เป็นรหัสอ้างอิงผู้ใช้งาน ในที่นี้คือ order_user_id ให้ระบุตัวเลือกเป็น "SESSION ไอดี ผู้ใช้งาน" (ซึ่งถ้าต้องการให้เห็นในระดับแผนก ก็สามารถอ้างอิงฟิลด์ที่เก็บรหัสแผนก และเลือก SESSION เป็น แผนกที่สังกัด)
3. เมื่อกำหนดชื่อต่างๆเรียบร้อย ก็คลิกสร้างไฟล์ Models, Views, JS และ Controller ให้เรียบร้อย (สำหรับ Version 0.6 จะมีปุ่ม "สร้างไฟล์ทั้งหมด")
4. จากนั้นให้คลิกลิงค์เพื่อดูตัวอย่าง(ในหน้า Controller) ก็จะพบกับหน้าเว็บที่เราสร้างเอาไว้ จะเห็นว่า จะต้อง Login ก่อนเข้าใช้งาน
5. ให้ล็อกอินด้วย user1 อีกครั้งเพื่อทดสอบการเข้าถึงหน้าเว็บ (ดูข้อมูล User ในตอนที่ 12 ข้อที่ 4)
สังเกตุได้ว่า รายการของ User คนอื่นๆ จะไม่แสดงออกมาปนกันแล้ว ข้อมูลในตารางรายการจะแสดงเฉพาะที่ตรงกับ SESSION ของผู้ที่กำลัง Login มาเท่านั้น
*** เพิ่มเติม ***
กรณีที่ Admin ดูข้อมูลได้ทั้งหมด ให้เขียนเงื่อนไขเพิ่มใน Model
public function __construct()
{
//...
//...
//...
$user_id = $this->session->userdata('user_id');
if($this->session->userdata('user_level') < 9){
$this->owner_record = "($this->my_table.user_id = $user_id)";
}else{
$this->owner_record = "";
}
}
<< กำหนดสิทธิ์หน้าเว็บตาม แผนกที่สังกัด คำนวณผลรวมอัตโนมัติ เมื่อป้อนตัวเลข »
[[ PHP CI MANIA | ลดเวลาเขียนโค้ด เพิ่มเวลาบริหารจัดการได้มากขึ้น | Webpage Generator by CodeIgniter Framework ]]
HOME
HOME
--------------------------------
สนับสนุนค่ากาแฟผู้เขียนได้ที่
PHP CI MANIA - PHP Code Generator
โปรแกรมช่วยสร้างโค้ด ลดเวลาการเขียนโปรแกรม
ความคิดเห็น
แสดงความคิดเห็น