django - Django 用户和权限
问题描述
我需要在我的 django 应用程序中开发用户和组的场景,共有三个组-管理员-经理-员工通常可以通过创建超级用户来使用管理员,我需要为不同的组创建用户-管理员可以访问由创建的所有记录所有用户
现在我的要求是一些用户属于经理组,一些普通用户属于员工组..
- 关联用户如何属于经理组可以从员工组中获取他自己的记录以及他的下属用户的记录
我完全混淆了普通用户与经理组中的关联用户之间的关系。
如何将一些员工用户分配给经理用户?
解决方案
为了确保我们在同一页面上,您希望拥有以下用户结构:
- 管理员可以看到一切
- 经理可以看到 HIMSELF 和他的所有关联用户
- 用户可以看到 HIMSELF 就是这样
所以从技术上讲,经理和用户之间只有一种关系
假设您的Admin与 Django 的本机管理员角色不同,您可以设置以下逻辑:
- 以与您的自定义模型一对一的关系扩展 User 模型。让我们称之为
Profile
。 - 中的一个字段
Profile
可能role
是 Admin、Manager 或 User(可能想要创建引用表并使用外键) - 另一个字段可能是
related_manager
用户模型的外键。这将是一种说“那个用户是我的经理”的方式
您需要在模型中添加特定控件,特别是:
related_manager
如果用户是“用户”,则为必需(或可选?)。related_manager
None
如果用户不是“用户” ,则强制related_manager
必须是具有“经理”角色的用户- 您可能必须设置
signals
来处理“当需要管理用户的经理成为基本用户时会发生什么?” 这些用户会变得没有经理吗?或者您可能会阻止它发生,并且只有在没有附加用户时才能降级经理?这一切都取决于你想要什么
请注意,这是处理您的情况的众多方法之一
推荐阅读
- c# - WebEye.Controls.Wpf.WebCameraControl - 相机预览不来
- sql - 如何将日历项插入 Oracle 数据库记录?
- java - 带有查询参数的 Spring webflux WebTestClient
- git - 执行 git pull 时如何获取提交?
- botframework - 无法从 Json 文件中获取自适应卡值
- postscript - 后记:如何重新定义 setpagedevice
- android - 没有安装 csv 查看器的设备时没有 ActivityNotFoundException
- c# - 我不断收到错误 System.Data.SQLite.SQLiteException:'“into”附近的 SQL 逻辑错误:语法错误'
- nginx - Kong:尝试索引字段“主机”(零值)
- reactjs - 扩展静态类型的泛型不是智能感知的