वीर

5 มีนาคม 2008

CakePHP, วิธีดู action path จากใน controller

ACL ของ CakePHP สามารถตรวจสอบได้ว่า ARO (~ user หรือ role ของ user) สามารถเข้าไปใช้ ACO (หน้าเว็บ, action ต่างๆ เช่น books/index, books/delete) ได้หรือไม่.  อย่างไรก็ตาม ACL ก็ไม่ได้หามาให้เราเองว่าเรากำลังจะตรวจสอบ user ชื่ออะไร หรือว่า actionอะไร. คำสั่งที่เราใช้ ACL จริงๆคือ


$this->Acl->check($user, $page, 'read');

จาก code ข้างบนก็พอบอกได้ว่า $user กับ $page นี่เราต้องหามาเอง. $user ควรจะได้มาจาก Authentication module ที่ผมจะเขียนถึงในต้องต่อไป แต่ว่า $page จากที่อ่าน http://bakery.cakephp.org/articles/view/real-world-access-control สามารถเอามาได้ตาม code ข้างล่าง


$this->set('action', $this->name.DS.$this->action);

เพื่อให้เห็นภาพมากขึ้นลองดูทั้ง controller น่าจะดีกว่า


set('action', $this->name.DS.$this->action);
    }
}
?>

แล้วก็ view ด้วย


This action:

ผลออกมาก็จะได้แบบนี้

cake_action.png

การเขียนที่ดีควรจะทีสรุปหน่อยใช่มั้ย ถึงแม้ผมจะเอียนกับงานเขียนบางอย่างจนจะอ้วก แต่ผมก็จะสรุปว่า  คำสั่ง $this->name.DS.$this->action เอาไว้ใช้หาได้ว่า controller ใดๆ ที่จริงแล้วคือ  page ไหน (โดยตัด URL ออก) หรือจะคิดว่าเป็น action path ก็น่าจะได้ เช่น books/index เป็นต้น  พอได้ข้อมูลนี้มาแล้วเราก็เอาไว้ใช้ check ใน ACL ได้.

13 ตุลาคม 2007

เมื่อ Mac OS X บูทไม่ขึ้น

Filed under: Uncategorized — वीर @ 12:48 pm
Tags: , , ,

ปกติถ้าใช้ Debian เวลาบูทไม่ขึ้นก็พอจะดูจาก error message ได้ว่าเกิดอะไรขึ้น ในกรณีที่ไม่มี splash screen. ใน Mac OS X เวลาบูทส่วนมากจะเห็นแต่รูป apple แหว่ง เวลาไปค้างก็ไม่รู้ไปค้างที่ไหน. อย่างไรก็ตามเรามีท่าแก้ให้ Mac OS X บูทแบบเห็น message ต่างๆนานาได้ โดยการกด command + v ค้างไว้เวลาบูท เท่านี้ก็จะเห็นอะไรออกมาคล้ายตอน Debian หรือ NetBSD บูทแล้ว. สำหรับเครื่องผมมันไม่ขึ้นเพราะ file system เจ๋ง และก็มีข้อความขึ้นมาบอกว่าให้รัน fsck ด้วยมือ แต่บูทก็ไม่ขึ้นจะมารัน fsck ได้ไงอะ.  ผมก็เลยไป search Google ก็เจอเว็บนี้. เขาบอกว่าให้รับ fsck จาก single mode. ส่วนการจะเข้า single mode เวลาบูทก็ให้กด command + s ค้างไว้. ผมลองทำตามก็ปรากฎว่าเข้ามาที่ shell ได้จริงๆ ก็สั่ง fsck -fy ตามคำแนะนำต่อ และรอไปอีกพักใหญ่ fsck ก็ทำงานเสร็จ ผมก็สั่ง reboot ก็พบว่า Mac OS X กับมาใช้ได้เหมือนเดิม.

สาเหตุการเจ๊งครั้งนี้น่าจะมาจากการที่เครื่องค้าง งงๆเหมือนกันว่าทำไมค้าง แต่ก็ใช้มานานแล้วอะนะจะรวนบ้างก็ไม่แปลก. ผมก็กดปิดแล้ว แต่ว่า file system ที่ผมใช้คือ UFS ที่ไม่ใช่ Journaling file system แบบ Ext3 หรือว่า HFS+ (ของ Mac OS X) เอง. แต่ก็ใช้ UFS เพราะว่าใช้ OS อื่นๆที่ไม่ใช่ Mac OS X มาอ่าน partition ได้. นี่ก็น่าจะเป็นสาเหตุที่ทำให้ file system เจ๊ง

หน้าต่อไป »

บลอกที่ WordPress.com .