当前位置: 首页 > news >正文

aspnet动态网站开发考试如何创建属于自己的网站

aspnet动态网站开发考试,如何创建属于自己的网站,手机网站轮播图,网站备案核验单动机 这篇文章是关于dataease的权限管理的,开源版本是没有权限管理的,任何账号看到的东西都一样,显然,这不能满足正常的使用。因此要对不同的账号做权限分层管理,不同的账号看到不同的页面,实现不同的功能…

adduser

动机

这篇文章是关于dataease的权限管理的,开源版本是没有权限管理的,任何账号看到的东西都一样,显然,这不能满足正常的使用。因此要对不同的账号做权限分层管理,不同的账号看到不同的页面,实现不同的功能

建议

建议先浏览一下前面两篇
DataEase二开记录–踩坑和详细步骤(一)
https://blog.csdn.net/weixin_45399602/article/details/129518697
DataEase二开记录–踩坑和详细步骤(二)
https://blog.csdn.net/weixin_45399602/article/details/129519155

吐槽一句,这文章刚写完,就被抄袭了,一字不差,还抹去了作者的信息。。。



开始正文

登录

先从登录开始,看一下接口

image-20230324154041373
那就去找这个接口

image-20230324161939617

接着去找对用的server

image-20230324162441156

只能找到关于登录验证的部分,说明我们找的接口有问题。那就重新看登录页面。

menus 似乎有东西

image-20230324162623206

继续看它的perview

image-20230324162745834
打开自己细看,能看到 仪表盘 等页面内容,似乎有东西,那就去看看这个接口。

按照上面的方法,找到 DynamicMenuApi,继续找 server,

  public List<DynamicMenuDto> menus() {return dynamicMenuService.load(null);}

很明显这就是动态加载页面的,而且参数直接给了null,也许本来是有的,这里直接给了null,那正好可以用上,符合 我们根据用户ID 来加载 页面的需求。

在 interface 层全是可以看到原来是userId的参数的,如下

List<DynamicMenuDto> load(String userId);

去对对应的impl层,看一下load具体怎么操作的

  public List<DynamicMenuDto> load(String userId) {List<SysMenu> sysMenus = extSysMenuMapper.querySysMenu();List<DynamicMenuDto> dynamicMenuDtos = sysMenus.stream().map(this::convert).collect(Collectors.toList());//增加插件中的菜单List<PluginSysMenu> pluginSysMenus = PluginUtils.pluginMenus();if (CollectionUtils.isNotEmpty(pluginSysMenus)) {pluginSysMenus = pluginSysMenus.stream().filter(menu -> menu.getType() <= 1).collect(Collectors.toList());List<DynamicMenuDto> pluginDtos = pluginSysMenus.stream().map(this::convert).collect(Collectors.toList());dynamicMenuDtos.addAll(pluginDtos);}dynamicMenuDtos = dynamicMenuDtos.stream().sorted((s1, s2) -> {int sortIndex1 = null == s1.getMenuSort() ? 999 : s1.getMenuSort();int sortIndex2 = null == s2.getMenuSort() ? 999 : s2.getMenuSort();return sortIndex1 - sortIndex2;}).collect(Collectors.toList());dynamicMenuDtos.sort((s1, s2) -> s1.getHidden().compareTo(s2.getHidden()));return buildTree(dynamicMenuDtos);}

秘密全都在这里了,在这里加载了所有的页面。

extSysMenuMapper.querySysMenu() 这里查了所有的页面。
看了一下对应的表 sys_menu

image-20230324164421544

一看表,这不要太爽,都拆分开来了。

思路

发现sys_menu表是把各个页面拆开的,menu_id 是页面ID,pid表示父页面ID,这个就极大的便捷了开发的方式。

利用这个表,我加了一个表sys_user_menu表,只有两个字段,menu_id 和 userLevel (表示用户等级),这里我只简单的分为两个等级,“普通用户” 和 “管理用户”。

这样只需要个用户添加一个 userLevel 字段,就可以对应起来,实现 每个用户的权限不同了。

接着就是通过接口查看是怎么登录和加载页面的了,通过查看登录接口,以及server层,可以看到是根据登录用户信息动态加载页面的,这正好可以和前文的思路吻合。

梳理一下

整体来说,有以下几处需要改的:

①加一个sys_user_menu表

②动态加载页面的时候加一个join sys_user_menu表

③前端页面在新建用户的时候加一个选择用户等级


按照这个思路,我已经完成了简单的权限管理,实现了不同等级的用户权限不同。
具体步骤就不写了,欢迎私信我。

http://www.lbrq.cn/news/2789605.html

相关文章:

  • 手机网站模板更换方法淘宝关键词指数
  • 网站抓取qq网络推广工作
  • 钟情建网站公司哪里有免费的网站推广软件
  • 上海网站建设价位个人博客seo
  • 房地产网站模板库站长统计官方网站
  • cn网站建设多少钱攀枝花seo
  • 做网站推广什么好完整的社群营销方案
  • 买房子上哪个网站最好长沙百度提升排名
  • java网站开发教程流程今天重大新闻头条
  • 网站的全栈建设免费的自媒体一键发布平台
  • 公司微网站制作百度人工服务24小时热线电话
  • 制作网站的方法网络营销推广的概念
  • 济南 制作网站 公司自动app优化下载
  • p2p网站建设 上海seo费用价格
  • wordpress网站合并友情链接买卖代理
  • 黑龙江省农业网站建设情况整合营销传播的六种方法
  • php网站建设案例教程视频教程抖音关键词排名查询
  • 新疆生产建设兵团126团网站旅游企业seo官网分析报告
  • 学校网站建设流程图外贸seo软件
  • 提供网站哪家好沈阳关键词seo
  • 电商网站建设需求分析 实例题腾讯域名注册官网
  • 深圳专业做网站哪家好国内最新的新闻
  • 专业外贸网站建设 诚信 青岛云南网络推广服务
  • 网站备案信息更改网络营销软件大全
  • 网站开发可选择的方案全网自媒体平台大全
  • 泰安新闻频道在线直播重庆网站优化排名推广
  • 网站开发南昌百度最新秒收录方法2021
  • 长春做网站哪家公司好sem是什么电镜
  • 无锡网站制作哪里实惠口碑营销案例
  • 网站制作最郑州百度推广托管
  • (认识异常)
  • RabbitMQ:SpringAMQP Topic Exchange(主题交换机)
  • Java多线程:线程创建、安全、同步与线程池
  • 45 C++ STL模板库14-容器6-容器适配器-优先队列(priority_queue)
  • 【Python语法基础学习笔记】条件表达式和逻辑表达式
  • 后端通用基础代码