我正在使用 CodeIgniter 3.x、最新的 HMVC、ion Auth 进行身份验证并基于应用程序角色。
该应用程序是动态的基于角色的。即数据库处理角色 ► 用户 ► modules-controlers-CRUD_rights
现在一个模块函数调用第二个模块函数。问题是当第一个模块权限为 READ 并且第二个模块没有授予特定用户的 READ 权限时。我无法弄清楚如何处理这种请求。
例如。
Role1 ► SalesGuy ► SalesModule ► InvoiceController
Role2 ► User2 ► ClientsModule ► ClientController ► load_clients_function
Role1 没有对 ClientsModule 的读取访问权限。
现在,在编码时,我通过以下代码访问客户端:
$clients_data = modules::load('ClientsModule/ClientController')->load_clients_function();
我得到 404,因为 ClientsModule/ClientController 构造函数的代码如下。
$this->mymodule = $this->router->fetch_module(); //ClientsModule
$this->myclass = $this->router->fetch_class(); //ClientController
$is_allowed = modules::load('myauth/')->mod_allowed($this->mymodule, $this->myclass);
// ^^^ this function checks in DB that logged in user has access to modules/controller or not.
if ($is_allowed !== '1') {
show_404();
}
我不确定我在哪里遗漏了一些东西。我在正确使用 HMVC 方面的知识或使用 OOPS 的知识都达不到标准。如果有人有 HMVC 和/或 CI 经验,请帮助我。