2

私はAuthPlayerのデフォルトモデルの代わりに持っています。最近アプリ用に ACL を構成しましたが、関数でUserテストを実行しようとしたときに、次のエラーが発生しました。return falseisAuthorized($player)

AclNode::node() - Couldn't find Aro node identified by
Array ( [Aro0.model] => User [Aro0.foreign_key] => 1 )

Aro0.modelであると思われませんPlayerか?を変更する場所が見つかりませんAuth->authorize。ユーザーログイン用のカスタムモデルを指定できるオプションAuth-authenticateがあるため、ログインできたので問題なく動作します。userModel

これが私のAppControllerです

class AppController extends Controller
{
    public $components = array(
        'Session',
        'Acl',
        'RequestHandler',
        'Auth' => array(

            'authorize' => array(
                'controller',
                'Actions' => array('actionPath' => 'controllers'),
            ),

            'authenticate' => array(
                'Form' => array(
                    'userModel' => 'Player',
                    'fields' => array('username' => 'email', 'password' => 'password'),
                    )
                )
            ),
        );
    public $helpers = array('Html', 'Form', 'Session');

    function isAuthorized($player)
    {
        //var_dump($player); die;
        return false;
        return $this->Auth->loggedIn();
    }

}
4

1 に答える 1

2

解決しました。userModelと一緒に追加することactionPathです。

$this->Auth->authorize = array(
    AuthComponent::ALL => array('actionPath' => 'controllers/', 'userModel' => 'Player'),
    'Actions',
    'Controller'
);
于 2012-10-19T06:51:54.340 に答える