- 2009/05/31 19:33
- CakePHP

CakePHPでは、管理者用のURLを設定できるようになっている。
app/config/core.phpにて、
Configure::write(‘Routing.admin’, ‘admin’);
を有効にすれば、たとえばおなじPostsコントローラー内に、admin_indexというfunctionを作っておけば、
http://hogehoge.com/admin/posts
で、管理者用としてルーティングしてくれるようになる。
ただ、これは単にルーティングをしてくれるだけであって、認証などの実装はされていない。
で、たとえばBasic認証などは以下のエントリーが参考になります。
今作っているシステムで、Basic認証までは。。。。ということで、IP制限をかけるようにしてみた。
なお、コンポーネントの使い方は上記の参考URLのコンポーネントを使わせて頂きました。
app/controllers/components/admin_auth.php
<?php
class AdminAuthComponent extends Object {
public function startup(&$controller) {
if (!preg_match("/^" . Configure::read('Routing.admin') . "_/i", $controller->action)) {
return;
}
if (empty($_SERVER['REMOTE_ADDR'])) return false;
$ip = $_SERVER['REMOTE_ADDR'];
if (!preg_match("/192\.168\.0\..*/",$ip)){
echo "Access Denied!";
exit;
}
}
}
?>
そして、app_controller.phpに以下のように追加する。
<?php
class AppController extends Controller {
public $components = array('AdminAuth');
}
?>
う~ん、なんて便利なんだ!





[...] [CakePHP] 管理者画面でIP制限をかけてみる – ElectronicBrain is eating BreakFast [...]
[...] http://www.multiburst.net/ElectricBrain/2009/05/ip-limitation-on-the-admin-routing つぶやく Tags: Basic認証, cakephp, PHP CGI版 Share this post! [...]