权限系统通常包括如下基本元素:用户、角色、权限、资源、操作。
角色分类:总经理、部长、员工。(在实际中一个用户可能存在多个角色,这就要考虑到权限累加处理)
权限分类:如”员工考勤权限”、”审核权限”等等。
在给角色分配权限过程中,可以批量分配权限,也可以单一处理,比如网站首页,这就应该开放给所有角色,而审核考勤就只能给部分角色有开放,是单一处理的。
角色,是 页面权限 的集合。
用户,可以同时具有多个 角色,这就意味着用户可能拥有多个批量权限和单一权限
用户的权限集 = 用户的所有 角色 的权限
实质上角色的本质是 权限的集合。
页面对权限的处理:
当用户去访问一个页面时,我们在过滤器中去判断用户有没有这个权限访问该页面,有权限就让该用户访问,没有权限就拒绝访问。
说下我做的一个权限系统大概情况:
数据库表结构:
用户表user
角色表role
系统模块表module
用户角色关联表userRole
角色模块关联表rolemodule
系统权限验证思路:
用户登陆时,去获取他的角色,再用角色去获取该用户的权限集,把这个权限集处理在缓存中或者其他处理方式,当用户每次向后台发送请求时,我们去缓存中拿到这个权限集与后台访问页面权限比较是否有权限。