將一個基本權(quán)限或角色授予用戶或用戶組,使用戶或用戶授予基本權(quán)限組擁有授予權(quán)限的字符串,如果角色、職位、項目中存在字符串授予擁有相同的基本權(quán)限,則取其中的一個;如脫離角色、職位、基本權(quán)限相同項目組,只是取消用戶或用戶組的中此角色、職位、項目項目角色職位組所授予的權(quán)限。用戶所擁有的權(quán)限是所有途徑授予權(quán)限授予擁有途徑的集合。管理員用戶可以查看每個用戶的最終權(quán)限列表。管理員查看可以 權(quán)限管理
基本操作權(quán)限與權(quán)限組(基本操作權(quán)限的集合)的管理。權(quán)限操作基本
OA權(quán)限管理設(shè)計的實現(xiàn)
物理數(shù)據(jù)模型圖如下:
物理數(shù)據(jù)模型圖
根據(jù)以上設(shè)計思想,權(quán)限管理總共需要以下基本表:
tb_User:用戶信息基本表;
tb_Department:部門表;
tb_Company:公司表;
tb_Module:系統(tǒng)模塊表;
tb_Action:系統(tǒng)中所有操作的動作表;
tb_Permit:由tb_Module與tb_Action兩表結(jié)合產(chǎn)生的系統(tǒng)基本權(quán)限表;
tb_Permit_Group:權(quán)限組表,將一模塊的中的所有權(quán)限劃分一個權(quán)permitgroup所有限組中,可以通過權(quán)限組授予用戶權(quán)限;
tb_Role:角色表,基本權(quán)限的集合。無上級與下級之分;
tb_Position:職位表,有上級與下級之分;
tb_Project:項目組表,
tb_Role_Permit:角色授權(quán)表;
tb_Postion_Permit:職位授權(quán)表;
tb_Project_Permit:項目授權(quán)表;
tb_Project_User:項目成員表,IsLead字段代表此成員為項目組長;
tb_Postion_User:職位成員表;
tb_User_Permit:用戶授權(quán)表,用戶ID與角色、職位、項目及直接permit授權(quán)直接授予的權(quán)限串表;
權(quán)限的產(chǎn)生:
由tb_Module中的ModuleCode與tb_Action中的ActionCode組成
權(quán)限代碼PermitCode=ModuleCodeActionCode。
實例:ModuleCode=0101,ActionCode=01,則PermitCode=010101。
權(quán)限值則有ModuleValue與ActionCode組合而成,采用下劃線來modulevaluactioncod下劃線連接。
實例:ModuleValue=Sys_User,ActionValue=AdD,PermitValue=Sys_User_Add
權(quán)限組:
包括一組同一模塊下的權(quán)限的組合,如管理包括組合權(quán)限用戶包括基本的權(quán)限:添加、刪除、修改、查看等,將這查看包括刪除些組合起來構(gòu)成一個用戶組用戶管理權(quán)限組。其組合權(quán)限構(gòu)成它類似。只是為了更方便的查看系統(tǒng)權(quán)限與權(quán)限的分配。方便只是查看
實例:如管理用戶的權(quán)限代碼為010101à查看用010101查看實例戶,010102à添加用戶,010103à刪除用戶,010104à修改用戶,010105à審010104010105010102核用戶等,將這些基本權(quán)限組合起來一個集合而構(gòu)成了ldquoldquo基本這些;用戶管理權(quán)限組。
角色、職位、項目:
也就是按特定的需要劃分一種權(quán)限的集合。需要集合權(quán)限使用角色授權(quán)表、職位授權(quán)表、項目授權(quán)表來實現(xiàn)。授權(quán)項目使用實現(xiàn)表中存放的是權(quán)限代碼PermitCode,而不是權(quán)限組的GroupCode代碼。
用戶授權(quán):
由用戶授權(quán)表來實現(xiàn),用戶授權(quán)表中的RoleCode、rolecod授權(quán)實現(xiàn)PositionCode、ProjectCode分別是角色表中RoleCode組成的串、職位表PositionCode組成的串、projectcodrolecod組成ProjectCode組成的串。與角色授權(quán)表中的角色代碼RoleCode、職位授權(quán)表projectcodrolecod組成中PositionCode、項目授權(quán)表中的ProjectCode不對應(yīng)(不是主表與從表之間外projectcod對應(yīng)之間鍵關(guān)系)。
從而能夠?qū)崿F(xiàn)了一個用戶可以擁有多個角色能夠擁有可以、多個職位、多個項目的情況。
用戶授權(quán)表中的PermitCode為直接授權(quán)的權(quán)限代碼串,直接給用戶permitcod授權(quán)直接分配權(quán)限。
實例:
用戶ID為UserId=1的用戶權(quán)限授權(quán)表的記錄為:
RoleCode=001,003
PostionCode=001,002
ProjectCode=001,005
PermitCode=010101,020102
表明此用戶擁有兩個角色,代碼為001和003,并繼承這兩個擁有表明代碼角色的權(quán)限;
擔任兩個職位,代碼為001與002,并繼承兩個職位的權(quán)限;權(quán)限代碼職位
屬于兩個項目組中的成員,項目代碼為001與005,并繼承兩代碼項目屬于個項目中的權(quán)限。
直接指定給用戶的權(quán)限為010101與010102這兩個權(quán)限代碼的權(quán)限
用戶權(quán)限字符串:
根據(jù)用戶授權(quán)表的角色代碼、職位代碼、項授權(quán)根據(jù)代碼目代碼得到權(quán)限字符串及表中直接分配的權(quán)限字符串組合字符串得到分配成一個用戶的所有權(quán)限字符串集合。
信息發(fā)布:廣州名易軟件有限公司 http://m.jetlc.com