菜单分配权限与角色分配权限有什么关系?

  • Choerodon平台版本:0.7.0

  • 运行环境:自主搭建

  • 问题描述:

菜单分配权限与角色分配权限有什么关系,为什么不可以角色分配菜单?

菜单分配权限用于进入该菜单时需要检查的权限,如果没有这些权限就不会显示该菜单。
角色可以理解为一组权限的集合,拥有某角色的用户能够进行相应权限的操作。

菜单和角色有关系吗?因为之前hap是按角色单去分配菜单的

没有

那菜单只能是按照全局、组织、项目、用户来分配是吗,只能接口导入是吗?菜单分配可不可以加一个角色

都是根据业务功能来设计的。
角色分配权限可以控制到每个api,也就是在同一个页面里,按钮的权限也可以进行控制,例如我们平台项目所有者可以进行创建应用,而项目成员只能查看应用信息。

菜单是不可以在页面上分配权限的,只能通过前端初始化进数据库。

菜单上的权限是指用户在进入系统后,根据用户的角色分配来判断是否显示该菜单。更多的是用于前台用户体验。

角色权限是将一个角色和多条权限进行关联,然后再将角色在不同层级下分配给用户,则用户拥有该层级对应角色的所有权限。

所以菜单和角色其实没有强关联。只是都和权限有所关联。

请问根据用户的角色分配来判断是否显示该菜单,具体操作是不是:根据角色id,先查iam_role_permission表的permission_id,根据permission_id,查iam_menu_permission表的menu_id?

如果在角色分配权限的时候,去掉一个页面按钮的权限,是不是这个按钮就失效了呢?

去掉一个页面按钮的权限,不是这个按钮失效;
而是用户通过分配这个角色仍没有权限进行这个按钮的操作。

关于角色分配的所有判断都是基于iam_member_role 这张表的,通过用户、层级、组织ID/项目ID 查到角色,然后才关联到permission上。具体的代码逻辑你可以参考下。

页面上的控件权限只做显示控制,接口的实际权限是在发起请求是判断的。

好的,谢谢