我已经烘焙了我的项目,并获得了用于添加、查看、编辑和删除数据库数据的表单。我的数据库包括一个员工表。它包括一个称为访问级别的字段,可以选择“员工”或“管理员”。此外,员工用户名和密码也存储在员工表中。如何创建用户登录功能,以便管理员登录时可以对数据库执行任何操作,而员工则不允许管理员工表?
最佳答案
此问题不受登录方式/登录者的影响,而是与授权有关。
使用 isAuthorized
简单的认证授权为explained in the book .
如果您使用 Controller 授权设置应用程序,则身份验证组件将使用 Controller::isAuthorized
来确定请求是否有效。
只需定义函数 isAuthorized
即可满足您的需求
例如:
class AppController extends Controller {
public $components = array(
...
'Auth' => array(
...
'authorize' => array('Controller')
)
);
public function isAuthorized($user) {
if ($user['access_level'] === 'admin') {
return true;
}
return false; // always always default deny
}
}
上述意味着默认情况下非管理员用户无法访问任何操作。但在你的 Controller 中:
class OthersController extends AppController {
public function add() {...}
public function delete() {...}
public function isAuthorized($user) {
if ($this->action === 'add') {
return true; // Anyone can add
}
return parent::isAuthorized($user);
}
}
这将允许任何授权用户访问其他添加操作。
所以,你可以使用the auth component allow function使匿名用户可以访问操作或 Controller ;并使用 isAuthorized 限制非管理员用户的访问。
关于mysql - CakePHP 用户登录功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23323591/