2017-09-27 109 views
0

由于我的客户希望单个用户具有所有安全性的多个角色访问权限,因此我现在有麻烦了。我怎样才能在Codeigniter中做到这一点?我没有使用任何认证库。让我详细解释这个问题。 示例:在codeigniter中处理单个用户的多个角色

如果员工分配的主要角色是销售协调员。在某些时候,他必须被分配销售主管的另一个角色以及他的主要角色。因此,当此员工以其主要角色登录时,在他的菜单中,销售主管菜单也应该处于活动状态。

当作为销售助理(单作用)登录,菜单列表是:

Sales 
Customers Details 

但是,当他被分配了一个额外的角色(销售主管),他的菜单也会在销售活跃协调员主菜单如下:

Sales 
Customers Details 
Reports 
Manage Staff 

这将是新的菜单,一旦销售协调员用他的登录凭据登录到他的面板。此人员分配两个不同的角色没有不同的登录名。

+0

检查这一点 - https://stackoverflow.com/questions/21168729/ codeigniter-managing-user-roles – Bhaskar

+0

创建类似于(用户角色或权限)的表,在登录时获得对表的所有权限并在显示菜单的基础上查看权限 –

+0

如果您需要更多解释,我仅以表格的形式给您提供详细信息 –

回答

0

此问题的范围可能超出了单个堆栈溢出帖子。但正如一些人所说的,一种方法是建立与用户表,角色表和功能表的多对多关系。通过这种方式,您可以定义哪些用户具有哪些角色,以及哪些角色被允许执行哪些功能。

从YiiFramework这个图像类似 enter image description here

http://www.yiiframework.com/tutorial/image?type=guide&version=1.1&lang=en&file=has_many_through.png

你可能有表,如:

CREATE TABLE [Users] 
(
    [UserID] INT PRIMARY KEY IDENTITY(1,1), 
    [Username] NVARCHAR(50) NOT NULL 
); 

CREATE TABLE [Roles] 
(
    [RoleID] INT PRIMARY KEY IDENTITY(1,1), 
    [RoleTitle] NVARCHAR(50) 
); 

CREATE TABLE [UserRoles] 
(
    [UserID] INT, 
    [RoleID] INT 
);