2017-09-27 95 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 
);