3

我的网站有一个供员工使用的公共部分和供管理员使用的后端。它使用 2 种不同的模型,Employee 和 Admin。

我想使用 Auth 组件进行员工登录和管理员登录。我知道如何设置 Auth 组件以使用默认用户模型以外的模型。但是我可以让身份验证组件使用 2 种模型,一种用于员工身份验证,另一种用于管理员身份验证吗?我正在使用 admin_ 前缀路由。

这可能吗?我进行了搜索,但我只能找到有关如何使 Auth 组件使用除用户模型之外的模型的教程。

请指教!

编辑

我使用单独的登录表单进行管理员登录和员工登录。两者都使用员工控制器,但操作不同。

4

2 回答 2

0

考虑到您正在为员工和管理员使用两个单选按钮。然后您可以使用以下代码进入登录方法。

 function login()
{       
    if ($this->request->is('post'))
    {
        $logged_in = false;
        $login_type = $this->request->data['User']['login_type']
        if ($login_type == 'Admin')
        {
             $this->Auth->authenticate = array('Form' => array('userModel' => 'Admin' ));       
        }
        else //if ($login_type == 'Employee')
        {
             $this->Auth->authenticate = array('Form' => array('userModel' => 'Employee' ));             
        }
        $this->Auth->constructAuthenticate();
        if ($this->Auth->login())
        {  
             $logged_in = true;                 
                     /*.... Do what you want............*/
        }
    }
}
于 2012-08-07T05:18:04.603 回答
0

http://api.cakephp.org/class/auth-component

检查属性验证,你的答案就在那里!

和更多: http ://book.cakephp.org/2.0/en/core-libraries/components/authentication.html 。查看身份验证处理程序!

这是直接来自蛋糕页面的示例

<?php
// Basic setup
$this->Auth->authenticate = array('Form');

// Pass settings in
$this->Auth->authenticate = array(
'Form' => array('userModel' => 'Member'),
'Basic' => array('userModel' => 'Member')
);

只需放置其他东西而不是 Form 和 Basic 并关联好的模型

于 2012-08-06T19:37:07.033 回答