【问题标题】:manage group permission in codeigniter在 codeigniter 中管理组权限
【发布时间】:2013-10-29 07:28:19
【问题描述】:

我知道这个问题已经被问过很多次了,但我正在学习编写更好的代码。所以需要一些建议。

假设,我有一个如下所示的控制器和方法:

:Account
login();
home();
manage_user();
logout();

:Company
add();
view();
edit();
delete();

:Service
add();
delete();

:Page
default();
about_us();
contact_us();

我需要为三种类型的用户组(例如系统管理员、公司用户和普通用户)指定访问这些方法/页面的权限。

我有一个数据库结构

group(id, name);
user(id, parent_id, group_id, company_id, username, password, email);
permission(id, group_id, uri, allowed);

uri 字段可能包含“company/add”、“service/add”、“company/view”等值。

我有一个自动加载的库类作为用户,它有一个方法 check_permission(),这个方法已在 MY_Controller 构造函数上调用。

所以我的问题是,将控制器/功能映射到数据库字段以允许访问是一种好习惯吗?或者您还有其他比这更有效的选择吗?

【问题讨论】:

    标签: php mysql codeigniter


    【解决方案1】:

    在我看来,将每个用户的组权限保存在数据库中并拥有一个权限映射表总是好的。这样以后您就可以在不触摸代码的情况下升级或降级用户的权限(从管理面板)

    你也不需要在MY_Controller 的构造函数中进行数据库查询(如果你是的话)。当用户登录时,您可以将他的权限/组值保存在 Session 中,并继续使用以供进一步参考。这将保存您的查询:)

    【讨论】:

      猜你喜欢
      • 2018-09-05
      • 2018-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-09
      • 1970-01-01
      • 2014-04-18
      • 1970-01-01
      相关资源
      最近更新 更多