1

私には 2 種類のユーザーがいますが、現在は ACL を使用したくありません。Auth Component を使用して、次のことを達成したい

login() -> ユーザーがサイトの一般部分にログインしてアクセスできるようにします admin_login -> 管理者が Web サイトの admin_{actions} 部分にアクセスできるようにします。

管理者ログインを行うとき -> ユーザー モジュールで group_id = 1 かどうかを確認し、Web サイトの管理セクションへのログインのみを許可したい。

function admin_login(){
    $this->layout = 'admin_login';

    if($this->request->is('post')) {
        if($this->Auth->login()) {
            $this->redirect($this->Auth->redirect());
        } else {
            $this->Session->setFlash(__('Invalid username and password, try again'));
        }
    }
}

ユーザーがログインしたときに group_id = 1 かどうかを確認する方法は?

4

1 に答える 1

4

私はこのようなことをします:

function admin_login(){
    $this->layout = 'admin_login';

    if($this->request->is('post')) {
        if($this->Auth->login()) {
            // If here because user is logged in
            // Check to see if group_id is 1
            if($this->Auth->user('group_id') == 1){
                //$this->redirect($this->Auth->redirect());
                $this->redirect('/admin/dashboards'); //Example
            }else{
                // In case a user tries to login thru admin_login
                // You should log them in anyway and send them to where they belond
                $this->redirect('/users/account'); 
            }
        } else {
            $this->Session->setFlash(__('Invalid username and password, try again'));
        }
    }
}
于 2012-04-10T02:46:49.390 に答える