关于权限管理如何控制菜单显示?

为了保证系统安全,目前在考虑做接口权限认证,但是我现在不知道如何通过权限去控制菜单显示,感觉这个逻辑比较复杂

我目前的想法是,不让管理员设置某用户的菜单显示,只设置给什么权限,然后根据给的权限,自动生成可显示的菜单,但是复杂的问题是我不知道该如何控制这个自动生成

比如我有一个数据管理,某个用户能查看,增加数据,但是不能删除数据,对应菜单就能显示查看数据的菜单,增加数据和删除数据是在查看数据页面中的,那么如果管理员给某个用户设置了数据上传权限,但是忘给查看数据权限,那么这个用户登录之后,发现没有查看数据菜单,点击不到数据查看页面,也就看不到数据查看页面的添加数据按钮,就没办法做添加数据,那我该怎么办?

目前问题就是不知道怎么来控制这个权限和菜单之间的关系

阅读 1.1k
1 个回答

提一个简单的控制方案。

1. 服务端权限配置文件

A功能:增、删、改

B功能:增、删、改

权限组管理:增、删、改(用于添加权限组、修改权限组功能,展示时以树状展示所有权限用于勾选)

用户管理:增、删、改(简单点,只允许选中某一个权限组)

2. 接口(首页列表)

管理首页:根据uid->查找对应权限组->遍历权限组所有权限->所有可功能组成列表返回

A功能(假设当前用户有权限查看):
    1)查看:点击查看->服务端根据uid->权限组->判断是否有权限查看->返回内容或错误信息
            根据页面实际需要, 在返回内容的同时,把具体权限也一起返回
            比如前端可以根据是否有删除权限,决定是否展示删除按钮
    2) 新增:同上做法,判断是否有新增权限做出不同应对
    3) 修改:同上做法,判断是否有修改权限做出不同应对
    4) 删除:同上做法,判断是否有删除权限做出不同应对

B功能。。。

权限组管理。。。

用户管理。。。

3. 初始账号管理

  • 超级管理员:

    系统初始化可以设置一个超级管理员账号,拥有所有权限(直接执行脚本改动对应的权限表信息,或者直接在数据库中改权限信息)。
    
    后续可以创建另外创建一个管理员权限组,将具体权限下放
  • 普通账号:

    1) 由管理员直接后台创建,并分配对应权限组
    
    2) 自己注册,分配一个默认的权限组,之后再等待重新具体分配

可以在以上基础上再具体细化操作。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进