OA系統(tǒng)權(quán)限管理設(shè)計(jì)方案
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
l 不同職責(zé)的人員,對(duì)于系統(tǒng)操作的權(quán)限應(yīng)該是不同的。優(yōu)秀的業(yè)務(wù)系統(tǒng),這是最基本的功能。 l 可以對(duì)“組”進(jìn)行權(quán)限分配。對(duì)于一個(gè)大企業(yè)的業(yè)務(wù)系統(tǒng)來(lái)說(shuō),如果要求管理員為其下員工逐一分配系統(tǒng)操作權(quán)限的話,是件耗時(shí)且不夠方便的事情。所以,系統(tǒng)中就提出了對(duì)“組”進(jìn)行操作的概念,將權(quán)限一致的人員編入同一組,然后對(duì)該組進(jìn)行權(quán)限分配。 l 權(quán)限管理系統(tǒng)應(yīng)該是可擴(kuò)展的。它應(yīng)該可以加入到任何帶有權(quán)限管理功能的系統(tǒng)中。就像是組件一樣的可以被不斷的重用,而不是每開(kāi)發(fā)一套管理系統(tǒng),就要針對(duì)權(quán)限管理部分進(jìn)行重新開(kāi)發(fā)。 l 滿足業(yè)務(wù)系統(tǒng)中的功能權(quán)限。傳統(tǒng)業(yè)務(wù)系統(tǒng)中,存在著兩種權(quán)限管理,其一是功能權(quán)限的管理,而另外一種則是資源權(quán)限的管理,在不同系統(tǒng)之間,功能權(quán)限是可以重用的,而資源權(quán)限則不能。 針對(duì)OA系統(tǒng)的特點(diǎn),權(quán)限說(shuō)明: 權(quán)限 在系統(tǒng)中,權(quán)限通過(guò)模塊+動(dòng)作來(lái)產(chǎn)生,模塊就是整個(gè)系統(tǒng)中的一個(gè)子模塊,可能對(duì)應(yīng)一個(gè)菜單,動(dòng)作也就是整個(gè)模塊中(在B/S系統(tǒng)中也就是一個(gè)頁(yè)面的所有操作,比如“瀏覽、添加、修改、刪除”等)。將模塊與之組合可以產(chǎn)生此模塊下的所有權(quán)限。 權(quán)限組 為了更方便的權(quán)限的管理,另將一個(gè)模塊下的所有權(quán)限組合一起,組成一個(gè)“權(quán)限組”,也就是一個(gè)模塊管理權(quán)限,包括所有基本權(quán)限操作。比如一個(gè)權(quán)限組(用戶管理),包括用戶的瀏覽、添加、刪除、修改、審核等操作權(quán)限,一個(gè)權(quán)限組也是一個(gè)權(quán)限。 角色 權(quán)限的集合,角色與角色之間屬于平級(jí)關(guān)系,可以將基本權(quán)限或權(quán)限組添加到一個(gè)角色中,用于方便權(quán)限的分配。 用戶組 將某一類(lèi)型的人、具有相同特征人組合一起的集合體。通過(guò)對(duì)組授予權(quán)限(角色),快速使一類(lèi)人具有相同的權(quán)限,來(lái)簡(jiǎn)化對(duì)用戶授予權(quán)限的繁瑣性、耗時(shí)性。用戶組的劃分,可以按職位、項(xiàng)目或其它來(lái)實(shí)現(xiàn)。用戶可以屬于某一個(gè)組或多個(gè)組。 通過(guò)給某個(gè)人賦予權(quán)限,有4種方式(參考飛思辦公系統(tǒng)) A. 通過(guò)職位 a) 在職位中,職位成員的權(quán)限繼承當(dāng)前所在職位的權(quán)限,對(duì)于下級(jí)職位擁有的權(quán)限不可繼承。 b) 實(shí)例中:如前臺(tái)這個(gè)職位,對(duì)于考勤查詢有權(quán)限,則可以通過(guò)對(duì)前臺(tái)這個(gè)職位設(shè)置考勤查詢的瀏覽權(quán),使他們有使用這個(gè)對(duì)象的權(quán)限,然后再設(shè)置個(gè),考勤查詢權(quán)(當(dāng)然也可以不設(shè)置,默認(rèn)能進(jìn)此模塊的就能查詢),則所有前臺(tái)人員都擁有考勤查詢的權(quán)利。 B. 通過(guò)項(xiàng)目 a) 在項(xiàng)目中,項(xiàng)目成員的權(quán)限來(lái)自于所在項(xiàng)目的權(quán)限,他們同樣不能繼承下級(jí)項(xiàng)目的權(quán)限,而對(duì)于項(xiàng)目組長(zhǎng),他對(duì)項(xiàng)目有全權(quán),對(duì)下級(jí)項(xiàng)目也一樣。 b) 實(shí)例中:在項(xiàng)目中,項(xiàng)目成員可以對(duì)項(xiàng)目中上傳文檔,查看本項(xiàng)目的文檔,可以通過(guò)對(duì)項(xiàng)目設(shè)置一個(gè)對(duì)于本項(xiàng)目的瀏覽權(quán)來(lái)實(shí)現(xiàn)進(jìn)口,這樣每個(gè)成員能訪問(wèn)這個(gè)項(xiàng)目了,再加上項(xiàng)目文檔的上傳權(quán)和查看文檔權(quán)即可。 c) 對(duì)于組長(zhǎng),因?yàn)榭梢再x予組長(zhǎng)一個(gè)組長(zhǎng)權(quán)(組長(zhǎng)權(quán)是個(gè)特殊的權(quán)限,它包含其他各種權(quán)限的一個(gè)權(quán)限包),所有組長(zhǎng)對(duì)于本項(xiàng)目有全權(quán),則項(xiàng)目組長(zhǎng)可以對(duì)于項(xiàng)目文檔查看,審批,刪除,恢復(fù)等,這些權(quán)限對(duì)于本項(xiàng)目的下級(jí)項(xiàng)目依然有效。 C. 通過(guò)角色 a) 角色中的成員繼承角色的權(quán)限,角色與角色沒(méi)有上下級(jí)關(guān)系,他們是平行的。通過(guò)角色賦予權(quán)限,是指沒(méi)辦法按職位或項(xiàng)目的分類(lèi)來(lái)賦予權(quán)限的另一種方式,如:系統(tǒng)管理員,資料備份員… b) 實(shí)例中:對(duì)于本系統(tǒng)中,全體人員應(yīng)該默認(rèn)都有的模塊,如我的郵件,我的文檔,我的日志,我的考勤……,這些模塊系統(tǒng)成員都應(yīng)該有的,我們建立一個(gè)角色為系統(tǒng)默認(rèn)角色,把所有默認(rèn)訪問(wèn)的模塊的瀏覽權(quán)加入到里面去,則系統(tǒng)成員都能訪問(wèn)這些模塊。 D. 直接指定 a) 直接指定是通過(guò)對(duì)某個(gè)人具體指定一項(xiàng)權(quán)限,使其有使用這個(gè)權(quán)限的能力。直接指定是角色指定的一個(gè)簡(jiǎn)化版,為了是在建立像某個(gè)項(xiàng)目的組長(zhǎng)這種角色時(shí),省略創(chuàng)建角色這一個(gè)步驟,使角色不至于過(guò)多。 b) 實(shí)例中:指定某個(gè)項(xiàng)目的組長(zhǎng),把組長(zhǎng)權(quán)指定給某個(gè)人。 針對(duì)職位、項(xiàng)目組: 如果用添加新員工,員工調(diào)換職位、項(xiàng)目組,滿足了員工會(huì)自動(dòng)繼承所在職位、項(xiàng)目組的權(quán)限,不需要重新分配權(quán)限的功能。 用戶管理 用戶可以屬于某一個(gè)或多個(gè)用戶組,可以通過(guò)對(duì)用戶組授權(quán),來(lái)對(duì)組中的所有用戶進(jìn)行權(quán)限的授予。一個(gè)用戶可以屬于多個(gè)項(xiàng)目組,或擔(dān)任多個(gè)職位。 授權(quán)管理 將一個(gè)基本權(quán)限或角色授予用戶或用戶組,使用戶或用戶組擁有授予權(quán)限的字符串,如果角色、職位、項(xiàng)目中存在相同的基本權(quán)限,則取其中的一個(gè);如脫離角色、職位、項(xiàng)目組,只是取消用戶或用戶組的中此角色、職位、項(xiàng)目組所授予的權(quán)限。用戶所擁有的權(quán)限是所有途徑授予權(quán)限的集合。管理員用戶可以查看每個(gè)用戶的最終權(quán)限列表。 權(quán)限管理 基本操作權(quán)限與權(quán)限組(基本操作權(quán)限的集合)的管理。 OA權(quán)限管理設(shè)計(jì)的實(shí)現(xiàn) 物理數(shù)據(jù)模型圖如下: 物理數(shù)據(jù)模型圖 根據(jù)以上設(shè)計(jì)思想,權(quán)限管理總共需要以下基本表: tb_User:用戶信息基本表; tb_Department:部門(mén)表; tb_Company:公司表; tb_Module:系統(tǒng)模塊表; tb_Action:系統(tǒng)中所有操作的動(dòng)作表; tb_Permit:由tb_Module與tb_Action兩表結(jié)合產(chǎn)生的系統(tǒng)基本權(quán)限表; tb_Permit_Group:權(quán)限組表,將一模塊的中的所有權(quán)限劃分一個(gè)權(quán)限組中,可以通過(guò)權(quán)限組授予用戶權(quán)限; tb_Role:角色表,基本權(quán)限的集合。無(wú)上級(jí)與下級(jí)之分; tb_Position:職位表,有上級(jí)與下級(jí)之分; tb_Project:項(xiàng)目組表, tb_Role_Permit:角色授權(quán)表; tb_Postion_Permit:職位授權(quán)表; tb_Project_Permit:項(xiàng)目授權(quán)表; tb_Project_User:項(xiàng)目成員表,IsLead字段代表此成員為項(xiàng)目組長(zhǎng); tb_Postion_User:職位成員表; tb_User_Permit:用戶授權(quán)表,用戶ID與角色、職位、項(xiàng)目及直接授予的權(quán)限串表; 權(quán)限的產(chǎn)生: 由tb_Module中的ModuleCode與tb_Action中的ActionCode組成 權(quán)限代碼PermitCode=ModuleCode+ActionCode。 實(shí)例:ModuleCode=0101,ActionCode=01,則PermitCode=010101。 權(quán)限值則有ModuleValue與ActionCode組合而成,采用下劃線來(lái)連接。 實(shí)例:ModuleValue=Sys_User,ActionValue=AdD,PermitValue= Sys_User_Add 權(quán)限組: 包括一組同一模塊下的權(quán)限的組合,如管理用戶包括基本的權(quán)限:添加、刪除、修改、查看等,將這些組合起來(lái)構(gòu)成一個(gè)用戶組——“用戶管理”權(quán)限組。其它類(lèi)似。只是為了更方便的查看系統(tǒng)權(quán)限與權(quán)限的分配。 實(shí)例:如管理用戶的權(quán)限代碼為010101à查看用戶,010102à添加用戶,010103à刪除用戶,010104à修改用戶,010105à審核用戶等,將這些基本權(quán)限組合起來(lái)一個(gè)集合而構(gòu)成了“用戶管理”權(quán)限組。 角色、職位、項(xiàng)目: 也就是按特定的需要?jiǎng)澐忠环N權(quán)限的集合。使用角色授權(quán)表、職位授權(quán)表、項(xiàng)目授權(quán)表來(lái)實(shí)現(xiàn)。授權(quán)表中存放的是權(quán)限代碼PermitCode,而不是權(quán)限組的GroupCode代碼。 用戶授權(quán): 由用戶授權(quán)表來(lái)實(shí)現(xiàn),用戶授權(quán)表中的RoleCode、PositionCode、ProjectCode分別是角色表中RoleCode組成的串、職位表PositionCode組成的串、ProjectCode組成的串。與角色授權(quán)表中的角色代碼RoleCode、職位授權(quán)表中PositionCode、項(xiàng)目授權(quán)表中的ProjectCode不對(duì)應(yīng)(不是主表與從表之間外鍵關(guān)系)。 從而能夠?qū)崿F(xiàn)了一個(gè)用戶可以擁有多個(gè)角色、多個(gè)職位、多個(gè)項(xiàng)目的情況。 用戶授權(quán)表中的PermitCode為直接授權(quán)的權(quán)限代碼串,直接給用戶分配權(quán)限。 實(shí)例: 用戶ID為UserId=1的用戶權(quán)限授權(quán)表的記錄為: RoleCode=001,003 PostionCode = 001,002 ProjectCode=001,005 PermitCode = 010101,020102 表明此用戶擁有兩個(gè)角色,代碼為001和003,并繼承這兩個(gè)角色的權(quán)限; 擔(dān)任兩個(gè)職位,代碼為001與002,并繼承兩個(gè)職位的權(quán)限; 屬于兩個(gè)項(xiàng)目組中的成員,項(xiàng)目代碼為001與005,并繼承兩個(gè)項(xiàng)目中的權(quán)限。 直接指定給用戶的權(quán)限為010101與010102這兩個(gè)權(quán)限代碼的權(quán)限 用戶權(quán)限字符串: 根據(jù)用戶授權(quán)表的角色代碼、職位代碼、項(xiàng)目代碼得到權(quán)限字符串及表中直接分配的權(quán)限字符串組合成一個(gè)用戶的所有權(quán)限字符串集合。 該文章在 2011/10/10 9:07:40 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |