权限控制设计

网上很多,基本的不再阐述。主要是后台模块的栏目等限制设计。

1.用户表(基础信息表)

CREATE TABLE `sp_users` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '用户id',
  `user_name` varchar(20) NOT NULL COMMENT '用户名',
  `password` char(32) NOT NULL COMMENT '密码',
  `real_name` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT '真实姓名',
  `email` varchar(50) DEFAULT NULL COMMENT '邮箱',
  `mobile` char(11) NOT NULL COMMENT '手机号',
  `photo` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '用户头像',
  `status` enum('2','1') NOT NULL DEFAULT '1' COMMENT '1为正常,2为禁用',
  `token` char(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'token码(用于前端验证登录)',
  `create_time` int(10) unsigned NOT NULL COMMENT '创建时间',
  `update_time` int(10) unsigned DEFAULT NULL COMMENT '更新时间',
  `last_login_ip` varchar(16) DEFAULT NULL COMMENT '最后登录ip',
  `last_login_time` int(10) unsigned DEFAULT NULL COMMENT '最后登录时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8 COMMENT='系统用户表';

2.分组角色表

CREATE TABLE `sp_auth_group` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
  `title` char(100) NOT NULL COMMENT '角色名称',
  `describe` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '角色描述',
  `rules` text COMMENT '角色权限集合ids',
  `create_time` int(10) unsigned DEFAULT NULL COMMENT '创建时间',
  `update_time` int(10) unsigned DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='角色表';
insert  into `sp_auth_group`(`id`,`title`,`describe`,`rules`,`create_time`,`update_time`) values 
(1,'管理员组','管理后台超级管理组','all_allow',1502415401,1505271936),
(2,'PHP研发组','PHP研发测试专用','1,30,31',1502415401,1505738490),(3,'前端技术1','前端技术','1,2,7,12,17,19,20',1502852829,1503365569),(4,'运营','运营人员','17,19,22',1505272494,NULL);

3.用户-角色表

CREATE TABLE `sp_auth_group_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增id',
  `user_id` int(11) unsigned NOT NULL COMMENT '用户id',
  `group_id` int(11) unsigned NOT NULL COMMENT '用户组id',
  `create_time` int(10) DEFAULT NULL COMMENT '创建时间',
  `update_time` int(10) DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COMMENT='用户角色关系表';
insert  into `sp_auth_group_user`(`id`,`user_id`,`group_id`,`create_time`,`update_time`) values 
(1,1,1,1502415401,NULL),
(2,6,2,1502766889,NULL),
(3,8,3,1502934543,NULL),
(5,11,5,1503279514,NULL),

4.角色规则表(具体的权限内容)

CREATE TABLE `sp_auth_rule` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
  `pid` int(11) unsigned NOT NULL COMMENT '父级id,0表示顶级目录',
  `name` char(80) NOT NULL DEFAULT '' COMMENT '规则',
  `title` char(20) NOT NULL DEFAULT '' COMMENT '规则名称',
  `level` tinyint(2) DEFAULT NULL COMMENT '层级',
  `type` enum('1','2') NOT NULL DEFAULT '1' COMMENT '目录类型 1仅展示 2实际权限控制',
  `create_time` int(10) unsigned NOT NULL COMMENT '创建时间',
  `update_time` int(10) unsigned DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=104 DEFAULT CHARSET=utf8 COMMENT='角色权限规则表';
insert  into `sp_auth_rule`(`id`,`pid`,`name`,`title`,`level`,`type`,`create_time`,`update_time`) values 
(1,0,'system management','系统管理',1,'1',1502852829,NULL),(2,0,'operationa management','运营管理',1,'1',1502852829,NULL),(3,0,'check management','审核管理',1,'1',1502852829,NULL),
(4,0,'media management','媒体管理',1,'1',1502852829,NULL),
(5,1,'user management','用户管理',2,'1',1502852829,NULL),
(6,1,'user center','个人中心',2,'1',1502852829,NULL),(7,5,'admin/authgroup/index','用户组列表',3,'2',1502852829,NULL),(8,7,'admin/authgroup/groupAdd','用户组添加',4,'2',1502852829,NULL),(9,7,'admin/authgroup/userlist','查看组内成员',4,'2',1502852829,NULL),(12,5,'admin/user/index','管理员列表',3,'2',1502852829,NULL),(13,12,'admin/user/useradd','新建账号',4,'2',1502852829,NULL),(14,12,'admin/user/userdel','账号注销',4,'2',1502852829,NULL),(15,12,'admin/user/useredit','账号编辑',4,'2',1502852829,NULL),(16,12,'admin/user/changepwd','修改密码',4,'2',1502852829,NULL),(17,6,'admin/user/editpwd','修改个人密码',3,'2',1502852829,NULL),(19,6,'admin/user/useredit','修改个人资料',3,'2',1502852829,NULL),(20,7,'Admin/AuthGroup/groupInfo','设置组权限',4,'2',1502852829,NULL),(21,2,'attachment management','附件管理',2,'1',1502852829,NULL),(22,2,'Admin/Member/index','注册用户管理',2,'2',1502852829,NULL),(23,2,'spacebean','空间豆',2,'1',1502852829,NULL),
(24,2,'spacecoin','空间币',2,'1',1502852829,NULL),
(25,4,'news center','资讯中心',2,'1',1502852829,NULL),
(26,3,'space management','空间管理',2,'1',1502852829,NULL),(27,3,'Admin/Identity/toAuditLists','身份认证管理',2,'2',1502852829,NULL),(28,3,'loan management','租金贷申请',2,'2',1502852829,NULL),(29,3,'comment management','评论管理',2,'1',1502852829,NULL),(30,25,'admin/newscategory/index','资讯频道',3,'2',1502852829,NULL),(31,25,'admin/news/index','资讯管理',3,'2',1502852829,NULL)

你可能感兴趣的:(权限控制设计)