app_controllers.php
ファイルに次のコードを設定して、サイトがOFFLINE(site_status = 0)に設定されている場合にサイトへのアクセスを制御します。CakePHP - サイトオフライン - 管理ルーティングが機能しない
function beforeFilter(){
// Site Offline = 0 , Site Online = 1
if($this->Configuration->get_site_status() == 1){
// Allow access to the site to all users and perform all required
// beforeFilter code
}else{
...
// If site is OFFLINE but User is logged in allow access.
// Later I will need to change it to only allow admin access if logged in as I am still developing
// Everyone else will be denied access even if they are able to authenticate
if(!$this->Auth->user() == null){
$this->layout = 'default';
$this->Auth->allow('*');
}else{
$this->layout = 'offline';
$this->Auth->deny('*');
}
...
}
}
:
http://www.mydomain.com/articles
しかし、私はそれはそれはへのアクセスを防止し、適切
http://www.mydomain.com/admin/articles
動作しない、次のしているときサイトを正しく使用していますが、$this->layout = 'offline'
は使用できません。デフォルトではdefault
のレイアウトに戻ります。
これを解決するには何が必要ですか?
ありがとうございました!
私のコードのものを含めて、これらの表現はすべて同じことを表していると思いました。それにもかかわらず、私はあなたの最初の提案 '!is_null($ this-> Auth-> user())'を試して、私のコードはまだ同じように動作しています。 Authが管理者のルーティングプレフィックスをどのように処理しているのかは分かっていますが、それを修正する方法はわかりません。もう提案はありますか? –
@CaboONE私は仕事に行く必要があります。私が降りる頃に誰もあなたに答えなかったら私は答えを広げます。 – cspray