• <一>权限表的相关设计


    一、基于角色的权限设计最重要的就是角色与菜单和操作(数据)的关系,如下图,菜单绑定角色和操作构成一个权限表(这里只控制到按钮权限)。组织其实也是一种角色。

     二、表的设计

    • SysMenu                                            菜单表,存放界面上显示的菜单项
    • SysOperation                                     操作表,存放界面上按钮相关信息的表
    • SysRole                                             角色表,存放系统角色的信息表
    • SysUser                                             用户表,存放系统用户的信息表
    • SysMenuToOperate                          菜单与操作关联表,存放菜单与操作的关联信息
    • SysRoleToUser                                 角色与用户关联表,存放角色与用户的关联信息
    • SysRoleToMenuToOperate               权限表,存放角色、菜单、操作的关联信息

    三、表的相关代码

        /// <summary>
        /// 菜单类
        /// </summary>
        public class SysMenu:IEntity
        {          
            public string Id { get; set; }   
            public string Name { get; set; } 
            public string ParentId { get; set; } = "";    
            public int? Sort { get; set; } = 0;
            public bool ShowState { get; set; } = true;
         }
        /// <summary>
        /// 操作类
        /// </summary>
        public class SysOperation:IEntity
        {
            public string Id { get; set; }
            public string Name { get; set; }  
            public string KeyCode { get; set; }
            public int Sort { get; set; } = 0;  
        }
        /// <summary>
        /// 角色类
        /// </summary>
        public  class SysRole:IEntity
        {      
            public string Id { get; set; } 
            public string Name { get; set; }
        }
        /// <summary>
        /// 用户类
        /// </summary>
        public class SysUser : IEntity
        {   
            public string Id { get; set; }
            public string Name { get; set; } 
            public string Password { get; set; }
        }
        /// <summary>
        /// 菜单与操作关联表
        /// </summary>
        public  class SysMenuToOperate:IEntity
        {
            public string Id { get; set; }
            public string MenuId { get; set; }
            public string OperateId { get; set; }
        }
        /// <summary>
        /// 角色与用户关联表
        /// </summary>
        public class SysRoleToUser:IEntity
        {
            public string Id { get; set; }
            public string UserId { get; set; }
            public string RoleId { get; set; }
        }
        /// <summary>
        /// 菜单与角色关联表
        /// </summary>
        public  class SysRoleToMenuToOperate : IEntity
        {
            public string Id { get; set; }     
            public string MenuToOperateId { get; set; }    
            public string RoleId { get; set; }     
            public bool IsValid { get; set; }
         }
     
  • 相关阅读:
    java8 parallel并行处理实战
    java相关技术问答(二)
    [安卓基础] 007.管理Activity的生命周期
    [Python基础]009.os模块(1)
    [Objective-C] 012_数据持久化_XML属性列表,NSUserDefaults
    SD.Team团队人物形象
    读Pyqt4教程,带你入门Pyqt4 _013
    [Objective-C] 011_数据持久化_NSKeyedArchiver
    [Objective-C] 010_Foundation框架之NSSet与NSMutableSet
    [JavaWeb基础] 007.Struts2的配置和简单使用
  • 原文地址:https://www.cnblogs.com/choii/p/16037602.html
Copyright © 2020-2023  润新知