0

私は自分のcakephp-appで非常に基本的なことを達成しようとしていますが、それに対する解決策を簡単に見つけられなかったことに非常に驚いています...

私がやりたいことは、ユーザーがログインしているかどうかに応じて、アプリのメイン ナビゲーションに利用可能なリンクを設定することです。

したがって、基本的には次のような関数です。

if(!$this->request->is('ajax')) {
    if(_user_is_not_logged_in_) {
        $availableNavItems = array('login','help');
        }
    else {
        if($this->Auth->User('role') == 'user') {
            $availableNavItems = array('something','something else','whatever','help','logout');
        }
        elseif($this->Auth->User('role') == 'admin') {
            $availableNavItems = array('something','something else','whatever','admin-tool','user management','help','logout');
        }
    }
    // set available pages for layout
    $this->set('availableNavItems',$availableNavItems);
}

もちろん、私のレイアウトでは、利用可能なページへのリンクを含むナビゲーション バーを作成します。

私が持っている唯一の質問 - 上記のようなコードをどこに配置しますか? Cakephp がリクエストごとに呼び出す AppController に入れることができるコールバック関数はありますか? そして、上記の擬似コード「_user_is_not_logged_in_」として書いたものを確認するにはどうすればよいでしょうか?

助けてくれてありがとう!

4

1 に答える 1