通用权限模块 权限粒度精确到菜单上的按钮

flowpackage

流量包充值项目
作者:王道健
私有项目
java项目  
架构:
spring-4.2.6+springmvc-4.2.6+mybatis+mysql+jsp 
参考地址: http://47.94.95.211
超级管理员 账号  admin  密码 123456
普通管理员 账号 wangdaojian 密码 123456

这是我做得一套流量充值系统,作为系统的唯一设计和开发人员,务必把系统设计的完善,占用内存少,逻辑清晰,并且要让未来的开发人员,尽可能的改动最少的代码,来实现尽可能多的功能。

目前框架已基本完成
其中包括:
日志模块  slf4j+log4j2
登录拦截器模块 
参数校验拦截器模块
单客户端登陆

其中最重要并且最通用的权限模块,表格已全部设计完. 后台代码也基本开发完成。

权限粒度控制到菜单页面的按钮, 分模块,每个模块有二级菜单,
这套通用权限系统足以应对大部分的后台管理系统

表格设计参考了如下
http://www.cnblogs.com/leoxie2011/archive/2011/05/19/2050626.html

并在此基础上进行了拓展

设计表,和数据路径位于
flowpackage/src/main/webapp/docs/sql/ 
前端使用国内开源的 H-ui-admin 界面清晰友好
地址: http://www.h-ui.net/index.shtml 
我把这套通用权限系统开源出来, 希望更多的人可以使用和学习.

页面样式

 

表结构图

 

CREATE TABLE `cf_admin` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`login_name` varchar(32) DEFAULT NULL COMMENT '账号',
`password` varchar(48) DEFAULT NULL COMMENT '密码',
`real_name` varchar(32) DEFAULT NULL COMMENT '真实姓名',
`sex` char(1) DEFAULT '1' COMMENT '性别 1男 2女',
`mobile` varchar(16) DEFAULT NULL COMMENT '手机号',
`email` varchar(32) DEFAULT NULL COMMENT '邮件',
`create_user_name` varchar(32) DEFAULT NULL COMMENT '创建人',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`modify_name` varchar(32) DEFAULT NULL COMMENT '修改人名字',
`update_time` datetime DEFAULT NULL COMMENT '更改时间',
`first_login_time` datetime DEFAULT NULL COMMENT '第一次登录时间',
`last_login_time` datetime DEFAULT NULL COMMENT '最后一次登录时间',
`available_flag` tinyint(1) DEFAULT '1' COMMENT '是否可用表 1可用 0 不可用',
`is_super` tinyint(1) DEFAULT '0' COMMENT '是否为超级管理员',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='管理员表';

CREATE TABLE `cf_adminRole` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`admin_id` int(11) DEFAULT NULL COMMENT '管理员id',
`role_id` int(11) DEFAULT NULL COMMENT '角色id',
PRIMARY KEY (`id`),
KEY `FK_Reference_1` (`role_id`),
KEY `FK_Reference_2` (`admin_id`),
CONSTRAINT `FK_Reference_1` FOREIGN KEY (`role_id`) REFERENCES `cf_role` (`id`),
CONSTRAINT `FK_Reference_2` FOREIGN KEY (`admin_id`) REFERENCES `cf_admin` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='管理员角色关联表';

 

CREATE TABLE `cf_privilege` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`master_type` tinyint(4) DEFAULT NULL COMMENT '权限主体 1 角色 2 用户 ',
`master_id` int(11) DEFAULT NULL COMMENT '权限主体id',
`access_type` tinyint(4) DEFAULT NULL COMMENT '权限访问类型 1 菜单 2 按钮 3 模块',
`access_no` smallint(11) DEFAULT NULL COMMENT '权限访问no menuNo或者buttonNo或者applicationCode',
`is_operatation` tinyint(1) DEFAULT NULL COMMENT '禁止使用 默认false',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COMMENT='管理员权限表';

 

CREATE TABLE `cf_role` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`role_name` varchar(32) DEFAULT NULL COMMENT '角色名称',
`role_desc` varchar(256) DEFAULT NULL COMMENT '角色描述',
`create_name` varchar(32) DEFAULT NULL COMMENT '创建人',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`modify_name` varchar(32) DEFAULT NULL COMMENT '修改人',
`modify_time` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='角色表';

 

CREATE TABLE `sys_application` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`application_code` smallint(6) DEFAULT NULL COMMENT '模块code',
`application_name` varchar(32) DEFAULT NULL COMMENT '模块名称',
`application_icon` varchar(32) DEFAULT 'Hui-iconfont-goods' COMMENT '模块icon',
`application_desc` varchar(256) DEFAULT NULL COMMENT '模块描述',
`application_url` varchar(256) DEFAULT NULL COMMENT '模块url',
PRIMARY KEY (`id`),
UNIQUE KEY `application_code` (`application_code`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='系统模块';

 

CREATE TABLE `sys_button` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`btn_no` smallint(6) DEFAULT NULL COMMENT '按钮编码',
`btn_name` varchar(32) DEFAULT NULL COMMENT '按钮名称',
`btn_class` varchar(32) DEFAULT NULL COMMENT '按钮类型',
`btn_icon` varchar(32) DEFAULT NULL COMMENT '按钮icon',
`menu_no` int(11) DEFAULT NULL COMMENT '所属菜单id',
`init_status` tinyint(1) DEFAULT NULL COMMENT '初始化状态 1 可用 0 不可用',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统按钮表';

 

CREATE TABLE `sys_menu` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`menu_no` smallint(6) DEFAULT NULL COMMENT '菜单编码',
`application_code` smallint(6) DEFAULT NULL COMMENT '模块code',
`menu_parent_no` smallint(6) DEFAULT NULL COMMENT '父菜单编码',
`menu_order` smallint(6) DEFAULT NULL COMMENT '菜单顺序',
`menu_name` varchar(32) DEFAULT NULL COMMENT '菜单名称',
`menu_url` varchar(256) DEFAULT NULL COMMENT '菜单url',
`menu_icon` varchar(256) DEFAULT NULL COMMENT '菜单icon',
`is_visible` tinyint(1) DEFAULT NULL COMMENT '是否可用 1可用 0不可用',
`is_leaf` tinyint(1) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `menu_no` (`menu_no`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COMMENT='系统菜单表';

 

 

 



请勿用于商业行为
尊重原创,转载请注明
作者:王道健
github地址:https://github.com/wangdaojian/flowpackage.git
qq: 419550295

posted @ 2017-06-23 22:26  王道健  阅读(987)  评论(0编辑  收藏  举报