用户权限管理--模块加载

做项目的时候,遇到权限授予之后,页面加载失败的情况,最后定位发现,数据库查询方法参数有误。跟踪了前后台代码,记录一下这种问题的解决思路:

1、数据库:在数据库中,有三个表,用户表、角色表、和页面菜单表。其中用户表和角色表通过角色roleId关联,角色表和页面菜单表通过角色roleId关联。这样,用户登录之后,就可以根据他/她的roleId去查询拥有哪些页面菜单的权限,即moduleIds。值得一提,页面菜单表中,有模块级别(父模块1、子模块2),模块名,二级模块url,模块父节点id,模块编码,模块ID,个人感觉模块编码和模块ID有点重复,因为项目中同事两个都标记为唯一了,估计是美观模块编码展示,不做成1,2,3递增之类的。

2、后台:在用户登录后,根据他/她的角色通过数据库方法查找出拥有权限的模块id。然后父菜单中存一个模块对象,子菜单存一个对象。根据结果,在用户信息里设置好父菜单和子菜单,返回给前台页面。

2、前台:在得到后台返回的数据后,在li序列中先循环加载父菜单模块名,然后在子循环中,判断子菜单的模块父节点与父菜单的模块ID,一样的话,就在父菜单模块下,加载子菜单模块。展示的话,在一个<ul></lul>循环,用<li></li>展示父菜单模块,然后在子循环下同理,在<ul></ul>内循环,用<li></li>展示子菜单模块。

后台代码:

前台代码:

猜你喜欢

转载自blog.csdn.net/ysh598923879/article/details/81108793
今日推荐