分角色登录时显示不同的菜单栏

误惹'''清晨 2019-08-05 02:44:18
一个登录界面中,会有不同的权限进入,比如管理员登录和超级管理员登录,管理员的菜单栏只能看部分的菜单,超级管理员可以看全部显示的菜单,请问这个怎么设置,如何根据不同的角色来隐藏菜单栏中的<li>标签,让内容不再显示,求解
...全文
922 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Super_King_ 2019-08-08
  • 打赏
  • 举报
回复
在后台创建几个表
菜单表(存所有的菜单) ,
用户表(所有登录用户) ,
登录权限表(存几个身份 比如管理员,操作员,普通用户),
用户权限表(里面其中的2个字段要是登录用户的id和登录权限表中的身份id) ,
菜单权限表(里面存的就是登录权限表里面的一个身份对应要展示的所以菜单表中菜单的id) ,
写一个接口来根据传进来的用户id来查询对应的菜单list
这样前端登录以后 调用后台查询菜单的接口取到返回的菜单list展示菜单就行了
雾里看花の 2019-08-08
  • 打赏
  • 举报
回复
最好的做法是建一个菜单表和菜单角色关联表,登录后根据用户的角色找到对应的菜单返回给前端,前端显示这些菜单
Gemini_Kanon 2019-08-08
  • 打赏
  • 举报
回复
引用 9 楼 误惹'''清晨 的回复:
[quote=引用 6 楼 Gemini_Kanon 的回复:]
[quote=引用 5 楼 误惹'''清晨 的回复:]
[quote=引用 3 楼 Gemini_Kanon 的回复:]
jsp页面的话可以通过后台的传值判断,显示对应想显示出的页面,html可以用ajax,或者可以用shiro框架可以帮你管理这些问题

就是jsp页面,但是这个判断不知道怎么做,可以细讲一下吗,[/quote]
用jsp的标签库做判断,给你个例子
<c:if test="${user.status == '1'}">
<div>123</div>
</c:if>

<c:if test="${user.status == '0'}">
<div>456</div>
</c:if>

上面的user就是你后台传过来的实体类,status是你实体类(也就是数据库中)的一个属性,这个属性可以设置成不同的值,假设1代表的是管理员,那么你用管理员账号登录之后页面就会显示出123,如果你用status为0的账户登录,页面就是456;直接传一个值也是可以的[/quote]谢谢谢谢,这个可以隐藏部分菜单吗,就像这样“用户A有A角色 可以看到所有的菜单,B用户有B角色只能看到部分菜单”隐藏一部分[/quote]
可以,把用户B不想看到的菜单放到c:if判断里就可以了
误惹'''清晨 2019-08-07
  • 打赏
  • 举报
回复
引用 6 楼 Gemini_Kanon 的回复:
[quote=引用 5 楼 误惹'''清晨 的回复:]
[quote=引用 3 楼 Gemini_Kanon 的回复:]
jsp页面的话可以通过后台的传值判断,显示对应想显示出的页面,html可以用ajax,或者可以用shiro框架可以帮你管理这些问题

就是jsp页面,但是这个判断不知道怎么做,可以细讲一下吗,[/quote]
用jsp的标签库做判断,给你个例子
<c:if test="${user.status == '1'}">
<div>123</div>
</c:if>

<c:if test="${user.status == '0'}">
<div>456</div>
</c:if>

上面的user就是你后台传过来的实体类,status是你实体类(也就是数据库中)的一个属性,这个属性可以设置成不同的值,假设1代表的是管理员,那么你用管理员账号登录之后页面就会显示出123,如果你用status为0的账户登录,页面就是456;直接传一个值也是可以的[/quote]谢谢谢谢,这个可以隐藏部分菜单吗,就像这样“用户A有A角色 可以看到所有的菜单,B用户有B角色只能看到部分菜单”隐藏一部分
freekaiQaQ 2019-08-07
  • 打赏
  • 举报
回复
引用 4 楼 误惹'''清晨 的回复:
引用 2 楼 freekaiQaQ 的回复:
登陆时验证 用户的角色,取得相应的菜单(比如用户A有A角色 可以看到所有的菜单,B用户有B角色只能看到部分菜单),返回给页面。
就是这个意思,超管看所有菜单,管理员看部分菜单,当用管理员身份登录的时候怎么隐藏他不能看的菜单,这么不懂
【后台过滤】 现在假设 两个用户。一个admin, 一个普通用户a 。 这个时候可以有用户和角色的概念了吧。 admin就是管理员角色 adminRole ,a 就是 aRole. 现在假设你的菜单是从数据库里获取的。 如果不是,那请参照 5L和其他小伙伴的回答。 数据库里维护一涨 角色--对应菜单 的表。 登陆的时候验证是 admin的话, 就是 admin --> 对应adminRole--> 对应有哪些菜单。 同理a-->aRole-->aRole对应的菜单。 之后展示在页面上就是你要的效果了。
小小飞机 2019-08-07
  • 打赏
  • 举报
回复
我的想法和5楼一样,用c:if判断
Gemini_Kanon 2019-08-07
  • 打赏
  • 举报
回复
引用 5 楼 误惹'''清晨 的回复:
[quote=引用 3 楼 Gemini_Kanon 的回复:]
jsp页面的话可以通过后台的传值判断,显示对应想显示出的页面,html可以用ajax,或者可以用shiro框架可以帮你管理这些问题

就是jsp页面,但是这个判断不知道怎么做,可以细讲一下吗,[/quote]
用jsp的标签库做判断,给你个例子
<c:if test="${user.status == '1'}">
<div>123</div>
</c:if>

<c:if test="${user.status == '0'}">
<div>456</div>
</c:if>

上面的user就是你后台传过来的实体类,status是你实体类(也就是数据库中)的一个属性,这个属性可以设置成不同的值,假设1代表的是管理员,那么你用管理员账号登录之后页面就会显示出123,如果你用status为0的账户登录,页面就是456;直接传一个值也是可以的
误惹'''清晨 2019-08-07
  • 打赏
  • 举报
回复
引用 3 楼 Gemini_Kanon 的回复:
jsp页面的话可以通过后台的传值判断,显示对应想显示出的页面,html可以用ajax,或者可以用shiro框架可以帮你管理这些问题

就是jsp页面,但是这个判断不知道怎么做,可以细讲一下吗,
误惹'''清晨 2019-08-07
  • 打赏
  • 举报
回复
引用 2 楼 freekaiQaQ 的回复:
登陆时验证 用户的角色,取得相应的菜单(比如用户A有A角色 可以看到所有的菜单,B用户有B角色只能看到部分菜单),返回给页面。
就是这个意思,超管看所有菜单,管理员看部分菜单,当用管理员身份登录的时候怎么隐藏他不能看的菜单,这么不懂
Gemini_Kanon 2019-08-06
  • 打赏
  • 举报
回复
jsp页面的话可以通过后台的传值判断,显示对应想显示出的页面,html可以用ajax,或者可以用shiro框架可以帮你管理这些问题
freekaiQaQ 2019-08-06
  • 打赏
  • 举报
回复
登陆时验证 用户的角色,取得相应的菜单(比如用户A有A角色 可以看到所有的菜单,B用户有B角色只能看到部分菜单),返回给页面。
usecf 2019-08-05
  • 打赏
  • 举报
回复
那你就根据角色不一样 display:none 不同的li
1、菜单导航管理 2、操作按钮 3、角色管理 4、部门管理 5、用户管理(用户权限) 6、用户组管理(设置成员,用户组权限) 7、系统配置(动态配置系统参数) 8、附加属性(自定义属性) 9、系统日志(异常记录) 10、数据库备份/还原 11、资源管理,(动态数据库) 12、个人信息(基本信息,附加信息,用户角色,拥有权限) 13、首页快捷 14、数据回收站(业务功能删除过数据,全部保留在回收站) 15、系统个性化设置(切换菜单导航) 系统UI,给人感觉非常好,体积小巧,速度快 该源码是适用用于应用系统后台模块的管理(可扩展至支持集中化的权限管理平台), 0.支持N级菜单导航,菜单显示方式支持目前支持2种模式别:菜单(无限级),横向(2级) 1.动态切换皮肤,目前有两狂UI 蓝色,咖啡色 2.表单验证,文本框高亮起来 3.可以动态配权限按钮,角色权限,目录结构,栏目的链接都可以修改。权限管理非常灵活, 4.可以隐藏左侧导航栏,打开左侧导航栏,默认是打开,table表格都自应大小的 5.动态创建数据表,删除用户表,点击数据 表 可以查询字段信息 6.可以直接执行sql脚本 7.兼容 IE6,7,8,9 /Firefox /Google Chrome 这些浏览器都测试过 8.批量删除,自定义复选框样式,可以全选/反选 9.角色级,集团和公司的关系 10.权限 横向就是业务部,具体负责哪块业务,纵向是级别 11.动态报表设置,并且可以导出Excel 12.登陆日记,操作日记,异常日记 13.海量批量删除数据库,调用公共存储过程,参数,表明,主键 特点: UI:传统html css,美观 漂亮 大方 实用 js框架:jquery 系统大部使用AJAX操作。大大提高了用户体验 功能描述: 1.支持N级菜单导航,菜单显示方式支持目前支持2种模式别: 菜单(无限级),横向(2级) 2.表单验证,文本框高亮起来 3.可以动态配权限按钮,角色权限,目录结构,栏目的链接都可以修改。 4.可以隐藏左侧导航栏,打开左侧导航栏,默认是打开,table表格都自应大小的 5.动态创建数据表,删除用户表,点击数据 表 可以查询字段信息 6.可以直接执行sql脚本
通用权限管理框架源码 2013-5-15更新功能: 1、菜单导航管理 2、操作按钮 3、角色管理 4、部门管理 5、用户管理(用户权限) 6、用户组管理(设置成员,用户组权限) 7、系统配置(动态配置系统参数) 8、附加属性(自定义属性) 9、系统日志(异常记录) 10、数据库备份/还原 11、资源管理,(动态数据库) 12、个人信息(基本信息,附加信息,用户角色,拥有权限) 13、首页快捷 14、数据回收站(业务功能删除过数据,全部保留在回收站) 15、系统个性化设置(切换菜单导航) 2012-9-10更新内容: 系统UI,给人感觉非常好,体积小巧,速度快 该源码是适用用于应用系统后台模块的管理(可扩展至支持集中化的权限管理平台), 0.支持N级菜单导航,菜单显示方式支持目前支持2种模式别:菜单(无限级),横向(2级) 1.动态切换皮肤,目前有两狂UI 蓝色,咖啡色 2.表单验证,文本框高亮起来 3.可以动态配权限按钮,角色权限,目录结构,栏目的链接都可以修改。权限管理非常灵活, 4.可以隐藏左侧导航栏,打开左侧导航栏,默认是打开,table表格都自应大小的 5.动态创建数据表,删除用户表,点击数据 表 可以查询字段信息 6.可以直接执行sql脚本 7.兼容 IE6,7,8,9 /Firefox /Google Chrome 这些浏览器都测试过 8.批量删除,自定义复选框样式,可以全选/反选 9.角色级,集团和公司的关系 10.权限 横向就是业务部,具体负责哪块业务,纵向是级别 11.动态报表设置,并且可以导出Excel 12.登陆日记,操作日记,异常日记 13.海量批量删除数据库,调用公共存储过程,参数,表明,主键 特点: UI:传统html css,美观 漂亮 大方 实用 js框架:jquery 系统大部使用AJAX操作。大大提高了用户体验 功能描述: 1.支持N级菜单导航,菜单显示方式支持目前支持2种模式别: 菜单(无限级),横向(2级) 2.表单验证,文本框高亮起来 3.可以动态配权限按钮,角色权限,目录结构,栏目的链接都可以修改。 4.可以隐藏左侧导航栏,打开左侧导航栏,默认是打开,table表格都自应大小的 5.动态创建数据表,删除用户表,点击数据 表 可以查询字段信息 6.可以直接执行sql脚本
1实验名称 网络嗅探实验 2实验目的 掌握网络嗅探工具的使用,捕获FTP数据包并进行析,捕获HTTP数据包并析,通过实 验了解FTP、HTTP等协议明文传输的特性,以建立安全意识。 3实验内容 3.1实验原理 网络嗅探器Sniffer的原理: 1)Sniffer即网络嗅探器,用于监听网络中的数据包,析网络性能和故障。Sniffer主 要用于网络管理和网络维护,系统管理员通过Sniffer可以诊断出通过常规工具难以解决 的网络疑难问题,包括计算机之间的异常通信、不同网络协议的通信流量、每个数据包 的源地址和目的地址等,它将提供非常详细的信息。 2)网卡有几种接收数据帧的状态:unicast(接收目的地址是本级硬件地址的数据帧) ,Broadcast(接收所有类型为广播报文的数据帧),multicast(接收特定的组播报文 ),promiscuous(目的硬件地址不检查,全部接收) 3)以太网逻辑上是采用总线拓扑结构,采用广播通信方式,数据传输是依靠帧中的MAC 地址来寻找目的主机。 4)每个网络接口都有一个互不相同的硬件地址(MAC地址),同,每个网段有一个在 此网段中广播数据包的广播地址 5)一个网络接口只响应目的地址是自己硬件地址或者自己所处网段的广播地址的数据帧 ,丢弃不是发给自己的数据帧。但网卡工作在混杂模式下,则无论帧中的目标物理地址 是什么,主机都将接收 6)通过Sniffer工具,将网络接口设置为"混杂"模式。可以监听此网络中传输的所有数 据帧。从而可以截获数据帧,进而实现实析数据帧的内容。 3.2实验步骤说明和截图 熟悉Sniffer 工具的使用 Sniffer 主界面 从文件菜单中选择适配器,标题栏将显示激活的探测器 选择适配器 文件菜单----选择网络探测器/适配器(N)----显示所有在Windows中配置的适配器 菜单与工具栏 状态栏 网络监控面板Dashboard 红色显示统计数据的阀值 使用Dashboard作为网络状况快速浏览 Host table(主机列表) Detail(协议列表) Matrix (网络连接) 2)捕获FTP数据包并进行角色:学生A进行FTP连接,学生B使用Sniffer监视A的连接。 步骤: 在命令符提示下输入IPCONFIG查询自己的IP地址。 学生B单击菜单中的"捕获"""定义捕获"""高级",再选中IP"TCP"FTP。设置Sniffer捕捉 数据的过滤选项,使其只捕捉FTP数据。 学生B选中显示菜单下的网络连接可以看到网络中的传输地图视图。在传输地图视图中单 击IP选项卡,用鼠标选中学生A主机的IP地址,单击鼠标右键,选中"捕获"命令,开始捕 获指定主机的有关FTP协议的数据包。 学生B单击工具栏中的捕获仪表盘按钮,可看到捕捉的包数量。 学生A登陆ftp(ftp://113.55.4.20)然后在输入用户名和密码,登陆到某个老师的ft p下。 学生B在捕获数据包到达一定的数量后,单击停止并显示按钮,停止抓包。 停止抓包后,单击窗口左下角的解码选型,窗口会显示捕捉的数据。学生B根据捕获报文 和报文解码,详细析捕获的数据包,找出有用信息:ftp连接的目的地址、目的端口、 发起连接的源地址、源端口、建立连接的3次握手的数据包及其对应的TCP协议包头结构 各字段数据、登陆的用户名及密码、目标主机浏览过的目录和文件。 A、B交换角色,重做实验。 截图结果如下: 通过实验可知FTP中的数据是以明文形式传输的,可以利用捕获的数据包析被监听主机 的任何行为,监听主机的信息极易泄露。 捕获HTTP数据包并角色:学生A进行HTTP连接,学生B使用Sniffer监视A的连接。 步骤: 学生B单击菜单中的"捕获"""定义捕获"""高级",再选中IP"TCP"HTTP。设置Sniffer捕捉 数据的过滤选项,使其只捕捉HTTP数据。 学生B选中显示菜单下的网络连接可以看到网络中的传输地图视图。在传输地图视图中单 击IP选项卡,用鼠标选中学生A主机的IP地址,单击鼠标右键,选中"捕获"命令,开始捕 获指定主机的有关HTTP协议的数据包。 学生B单击工具栏中捕获仪表盘的按钮,可看到捕捉的包数量。 学生A浏览www.163.com,任意浏览页面,登陆邮箱(输入正确用户名和密码)。 学生B在A关闭页面后,单击停止并显示按钮,停止抓包。 停止抓包后,单击窗口左下角的解码选型,窗口会显示捕捉的数据。学生B根据捕获报文 和报文解码,详细析捕获的数据包,找出有用信息 A、B交换角色,重做实验。 截图如下: 通过实验可知http传输数据不是以明文传输,能捕捉到用户名,但是不能捕捉到暗文, 所以不容易泄露信息,比ftp要安全一些。 -----------------------
`sql -- 超级管理员,拥有系统最高权限 select * from sys_user where super_admin_flag = 1 -- 租户管理员 select * from sys_user where admin_flag = 1 -- 是否超级管理员菜单(0否1是),如创建菜单后,菜单栏显示,注意检查此字段是否对应正确 select * from sys_menu where super_flag = 1 ``` multi_tenant.sql脚本中初始化了超级管理员的账号密码 1.使用admin/admin123登录系统 2.打开 租户管理-权限模板-新增,添加一个权限模板,指定模板拥有的菜单权限 ![超级管理员-新增权限模板](https://images.gitee.com/uploads/images/2020/1221/165014_a69e2bdd_2024853.png "image-20201221160550454.png") 3.打开 租户管理-租户列表-新增,新增一个租户,选择刚才的权限模板 ![超级管理员-创建租户](https://images.gitee.com/uploads/images/2020/1221/165113_8a7a7217_2024853.png "image-20201221160752827.png") 4.登出系统,使用刚才创建的租户账号重新登录系统,默认账号是上图中填写的手机号 13866688888,默认密码是123456. ```properties # 默认的租户密码 sys.default.pwd=123456. ``` ```sql # 菜单下租户数据隔离,comId可以在上下文登陆用户信息中取到 select * from order where com_id = #{comId} ``` 登录后进入租户首页 ![租户管理员-首页](https://images.gitee.com/uploads/images/2020/1221/165142_6393d144_2024853.png "image-20201221161209345.png") 租户管理员可以创建角色,并且给角色配该租户已有的权限,然后创建租户下的用户,并配 ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧