根据用户角色获取登录用户的django权限以显示/隐藏菜单

Posted

技术标签:

【中文标题】根据用户角色获取登录用户的django权限以显示/隐藏菜单【英文标题】:Get django permissions for logged in user to show/hide menus according to user role 【发布时间】:2020-06-13 20:16:46 【问题描述】:

我是 django 新手,正在开发一个 django 项目,我想根据登录用户的权限显示/隐藏菜单。我正在使用 Django Rest 框架和 JWT。我没有在 rest_auth.urls 中找到任何 url 来获取登录用户拥有的所有权限。你能帮我吗,你会怎么做?

【问题讨论】:

如果您使用 DRF 大概是 SPA,那么 Django 将如何负责绘制菜单? Django 不会绘制菜单,但 UI 设计人员需要登录用户的权限才能仅显示相关菜单。为了让他们能够做到这一点,我需要为他们提供一个端点,以便他们在用户登录后立即获得该信息。 您可能需要创建一个端点,告诉用户界面它有什么权限,然后没有什么权限。或者可能是一个端点,它告诉 UI 最终用户可以执行哪些操作。这不是 REST、Django 或 Django Rest Framework 中内置的东西,也没有标准的方法。 【参考方案1】:

您的用户界面不应通过权限本身。相反,它应该向后端发送请求,在 Django 视图中,您可以检查权限并向 UI 发送响应。

【讨论】:

项目中有多个模型,用户界面中有许多用于 CRUD 的菜单。管理层希望我只向正在登录的用户显示相关菜单以减少混乱。

以上是关于根据用户角色获取登录用户的django权限以显示/隐藏菜单的主要内容,如果未能解决你的问题,请参考以下文章

django的权限组件

权限分级设置

Django 权限管理-后台根据用户权限动态生成菜单

django根据不同用户角色设置数据的访问权限

设计OA系统的用户-角色-权限分配

OA系统