权限管理思路:
1.三张表(公司项目比较复杂,因此数据表远比这个复杂,这里只实现权限管理,简化一下)
action表------权限大菜单;
这个表没有实际意义,可是能够简化前端权限管理的样式,将同一个controller里面的具体操做能够放在一行显示,字段参考:
id,action_uri,action_name
do表------具体涉及的操做;
将全部要进行权限管理的操做放入此表,将会在前端页面权限管理里面分别显示,字段参考:
id,do_uri,do_name,action_id
privileges表------用户权限;
系统中存在的每个用户都有一条对应的记录,字段参考:
id,user_id,privileges
privileges存储为字符串,用*表示高级权限用户具有全部权限,用@表示普通权限用户具有除高级权限的全部权限,
用do_uri拼接的字符串表示自定义权限用户具有字符串中存在的权限。
2.用一个单独的方法把高级权限放入数组返回;
3.用户操做请求过来,先获取用户相关信息,包括权限表里面的权限。
与操做来源匹配。
若是获取到的是*,拥有权限直接下一步具体操做;
若是获取到的是@,看操做来源是否存在与高级权限数组里,若是不存在有权限下一步具体操做,若是存在就不具有权限退出;
若是获取到的是uri字符串,就将字符串转化为数组,看操做来源是否存在与数组中,若是存在有权限下一步具体操做,若是存在就不具有权限退出;
4.后台用户权限管理就是对user表和do表修改privileges表。前端