標籤:
這一節,我們插入資料來看看資料流,讓各位同學,知道這個許可權表互動是怎麼一個流程,免得大家後天霧裡來霧裡去
首先我再解釋一些表,SysUser和SysRole表不用解釋了。
- SysRoleSysUser:這個是角色和使用者的對應表 一個角色可以對應多個使用者,一個使用者可以對應多個角色
- SysModuleOperate:模組的作業碼表,我把每個Action都看作是一個作業碼,或者每個方法可以看作是一個作業碼
- SysRight:這個是角色和模組的關係表,只有被模組授權的角色才能設定許可權
- SysRightOperate:這個是角色擁有的作業碼,這個表間接和作業碼有關聯
現在我們來插入一些資料來看看他們之間的關係,我們SysModule這個表已經有資料了,我們還是拿SysSample,跑通這個,其他自然就通了
(源碼已經發布到第17講了,有興趣的童鞋在QQ群共用37509873,然後17講修改了一個問題,大家看到17講的留言部分)
給SysModuleOperate插入作業碼
INSERT INTO [SysModuleOperate] ([Id],[Name],[KeyCode],[ModuleId],[IsValid],[Sort]) values (‘BaseSampleCreate‘,‘建立‘,‘Create‘,‘BaseSample‘,0,0)INSERT INTO [SysModuleOperate] ([Id],[Name],[KeyCode],[ModuleId],[IsValid],[Sort]) values (‘BaseSampleDelete‘,‘刪除‘,‘Delete‘,‘BaseSample‘,0,0)INSERT INTO [SysModuleOperate] ([Id],[Name],[KeyCode],[ModuleId],[IsValid],[Sort]) values (‘BaseSampleDetails‘,‘詳細‘,‘Details‘,‘BaseSample‘,0,0)INSERT INTO [SysModuleOperate] ([Id],[Name],[KeyCode],[ModuleId],[IsValid],[Sort]) values (‘BaseSampleEdit‘,‘編輯‘,‘Edit‘,‘BaseSample‘,0,0)INSERT INTO [SysModuleOperate] ([Id],[Name],[KeyCode],[ModuleId],[IsValid],[Sort]) values (‘BaseSampleExport‘,‘匯出‘,‘Export‘,‘BaseSample‘,0,0)INSERT INTO [SysModuleOperate] ([Id],[Name],[KeyCode],[ModuleId],[IsValid],[Sort]) values (‘BaseSampleQuery‘,‘查詢‘,‘Query‘,‘BaseSample‘,0,0)INSERT INTO [SysModuleOperate] ([Id],[Name],[KeyCode],[ModuleId],[IsValid],[Sort]) values (‘BaseSampleSave‘,‘儲存‘,‘Save‘,‘BaseSample‘,0,0)
可以看出ModuleId對應是SysModule這個表的範例程式ID,IsValid是否要驗證
插入一個角色群組到表SysRole
INSERT INTO [SysRole] ([Id],[Name],[Description],[CreateTime],[CreatePerson]) values (‘administrator‘,‘超級管理員‘,‘全部授權‘,‘10 1 2012 12:00AM‘,‘Administrator‘)
將模組授權給SysRight
INSERT INTO [SysRight] ([Id],[ModuleId],[RoleId],[Rightflag]) values (‘administratorSampleFile‘,‘SampleFile‘,‘administrator‘,1)INSERT INTO [SysRight] ([Id],[ModuleId],[RoleId],[Rightflag]) values (‘administratorBaseSample‘,‘BaseSample‘,‘administrator‘,1)
把許可權賦給角色SysRightOperate
INSERT INTO [SysRightOperate] ([Id],[RightId],[KeyCode],[IsValid]) values (‘administratorBaseSampleCreate‘,‘administratorBaseSample‘,‘Create‘,1)INSERT INTO [SysRightOperate] ([Id],[RightId],[KeyCode],[IsValid]) values (‘administratorBaseSampleDelete‘,‘administratorBaseSample‘,‘Delete‘,1)INSERT INTO [SysRightOperate] ([Id],[RightId],[KeyCode],[IsValid]) values (‘administratorBaseSampleDetails‘,‘administratorBaseSample‘,‘Details‘,1)INSERT INTO [SysRightOperate] ([Id],[RightId],[KeyCode],[IsValid]) values (‘administratorBaseSampleEdit‘,‘administratorBaseSample‘,‘Edit‘,1)INSERT INTO [SysRightOperate] ([Id],[RightId],[KeyCode],[IsValid]) values (‘administratorBaseSampleExport‘,‘administratorBaseSample‘,‘Export‘,1)INSERT INTO [SysRightOperate] ([Id],[RightId],[KeyCode],[IsValid]) values (‘administratorBaseSampleQuery‘,‘administratorBaseSample‘,‘Query‘,1)INSERT INTO [SysRightOperate] ([Id],[RightId],[KeyCode],[IsValid]) values (‘administratorBaseSampleSave‘,‘administratorBaseSample‘,‘Save‘,1)
把作業碼賦給角色的許可權,比如附了Create這個作業碼,那麼角色擁有建立的許可權
建立一個使用者吧 SysUser
INSERT INTO [SysUser] ([Id],[UserName],[Password],[TrueName],[Card],[MobileNumber],[PhoneNumber],[QQ],[EmailAddress],[OtherContact],[Province],[City],[Village],[Address],[State],[CreateTime],[CreatePerson],[Sex],[Birthday],[JoinDate],[Marital],[Political],[Nationality],[Native],[School],[Professional],[Degree],[DepId],[PosId],[Expertise],[JobState],[Photo],[Attach]) values (‘admin‘,‘admin‘,‘01-92-02-3A-7B-BD-73-25-05-16-F0-69-DF-18-B5-00‘,‘系統管理員‘,NULL,NULL,‘06638888888‘,‘324345345‘,‘[email protected]‘,‘MSN:ymnets‘,‘440000‘,‘440100‘,‘440101‘,‘小小村落‘,1,‘11 18 2012 3:40PM‘,‘admin‘,‘男‘,‘05 18 1900 12:00AM‘,‘01 1 2013 12:00AM‘,‘未婚‘,‘中國‘,‘中國‘,‘廣東揭陽‘,‘美國哈佛大學‘,‘電腦工程‘,‘碩士‘,‘20000‘,‘20001‘,‘勤勞向學,為人友善,樂於助人‘,‘在職‘,NULL,NULL)
這裡有個加密的01-92-02-3A-7B-BD-73-25-05-16-F0-69-DF-18-B5-00密碼,講到使用者的時候會有加密這個類
把角色指派給使用者 SysRoleSysUser
INSERT INTO [SysRoleSysUser] ([SysUserId],[SysRoleId]) values (‘admin‘,‘administrator‘)
我們整理一下思路:
- 添加模組
- 添加模組作業碼
- 添加角色
- 把模組許可權賦給角色
- 把許可權賦給角色,由許可權來決定模組是否被顯示
- 添加使用者
- 把角色指派給使用者
構建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的後台管理系統(18)-許可權管理系統-表資料