##FuelPHP 1.5 で oil generate admin... すると無限ループになるかもに暫定対処する
FuelPHP 1.5 で
$ oil generate admin...
を実行すると、認証部分で無限ループになるかも。
そんな時は以下を参考に対処すると良いかも知れん。
###oil 側を修正することで oil g admin しても大丈夫になるようにする。
以下の2ファイルを各々、以下の内容に修正する事で、oil g admin した時に生成されるファイルにおいて、無限ループに陥らないようになる。
./fuel/packages/oil/views/admin/crud/controllers/admin.php
public function before()
{
parent::before();
if (Request::active()->controller !== 'Controller_Admin' or ! in_array(Request::active()->action, array('login', 'logout')))
{
if (Auth::check())
{
if ( ! Auth::member(100))
{
Session::set_flash('error', e('You don\'t have access to the admin panel'));
Response::redirect('/');
}
}
else
{
Response::redirect('admin/login');
}
}
}
./fuel/packages/oil/views/admin/orm/controllers/admin.php
public function before()
{
parent::before();
if (Request::active()->controller !== 'Controller_Admin' or ! in_array(Request::active()->action, array('login', 'logout')))
{
if (Auth::check())
{
if ( ! Auth::member(100))
{
Session::set_flash('error', e('You don\'t have access to the admin panel'));
Response::redirect('/');
}
}
else
{
Response::redirect('admin/login');
}
}
}
###もう既に oil g admin してしまっていて、とりあえずApp側だけ修正する場合
もう既に oil g admin してしまっていて、とりあえずApp側だけ修正したいんだけど…
という場合は以下の内容に書き換えればOKなはず。
./fuel/app/classes/controller/admin.php
public function before()
{
parent::before();
if (Request::active()->controller !== 'Controller_Admin' or ! in_array(Request::active()->action, array('login', 'logout')))
{
if (Auth::check())
{
if ( ! Auth::member(100))
{
Session::set_flash('error', e('You don\'t have access to the admin panel'));
Response::redirect('/');
}
}
else
{
Response::redirect('admin/login');
}
}
}
上記にすることで、oil g admin で生成されたファイルの無限ループには暫定対応可能なはず。