首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >对用户进行分组并在组中具有权限

对用户进行分组并在组中具有权限
EN

Stack Overflow用户
提问于 2018-10-31 08:16:51
回答 1查看 45关注 0票数 0

对于一个相对简单的模型,我有一个以CRUDing数据为中心的应用程序。我想将用户分组为“工作组”。每个“工作组”都有两种类型的用户,“贡献者”和“主管”。

“贡献者”可以浏览自己的数据,但只能读取“工作组”其他成员添加的数据。“监督员”可以检查“工作组”成员提供的所有数据。“工作组”从不相互影响。

我曾考虑过使用内置的组和权限功能,但感觉很麻烦,因为组似乎主要用于分配权限集,而权限似乎是针对每个模型的用例的。

当然,我可以有一个布尔字段,用于“贡献者”和“主管”,还有一个自定义的“工作组”模型,我的用户模型中有一个FK。

解决这个问题的优雅方法是什么?

注:引号中的术语是特定于应用程序的,只是在它们与Django功能发生冲突时加以澄清。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-31 08:58:43

如果我理解正确的话,你就有2级系统:

  1. 工作组-只是为了组织目的,与权限没有直接关系,
  2. 用户角色-(贡献者和监督者)与权限相关。

Django Auth 群模型可以用于一种或其他用途,也可以完全不用于:

( A)组==工作组--在这种情况下,不应该通过使用组来管理权限。每个用户都需要指定“贡献者”或“监督者”权限。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
some_group = Group.objects.create(name="Some workgroup")
user.groups.add(some_group)

sv_perm = Permission.objects.create(codename='can_supervise',...)
user.user_permissions.add(permission=sv_perm)

( B)组可以充当用户角色,在这种情况下,工作组应该是自定义模型,您应该拥有User.FK ->工作组。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
some_workgroup = Workgroup.objects.create("some workgroup"...)
user.workgroup = some_workgroup

sv_perm = Permission.objects.create(codename='can_supervise',...)
sv_group = Group.objects.create(name="Supervisors")
sv_group.permissions.add(sv_perm)
user.groups.add(sv_group)

C)跳过使用Django auth群- A)和B的组合)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
some_workgroup = Workgroup.objects.create(name="Some workgroup")
user.workgroup = some_workgroup

sv_perm = Permission.objects.create(codename='can_supervise',...)
user.user_permissions.add(permission=sv_perm)

注意:这不是经过测试的代码,仅用作演示。

我觉得最舒适的自定义解决方案,所以我会选择C) -最灵活的解决方案IMHO。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53087854

复制
相关文章
对 list 中的相同数据进行分组
同一组数据分组 需求:一个 list 里可能会有出现一个用户多条数据的情况。要把多条用户数据合并成一条。 思路:将相同的数据中可以进行确认是相同的数据,拿来做分组的 key,这样保证不会重。 实际中使用,以用户数据为例,可能用户名和身份证号是不会变的,用这两个条件拼接起来。
潇洒
2019/06/28
5.7K0
Linux 用户、用户组以及权限
3. 组号1~499为系统预留的组编号,一般是预留给系统安装的软件或者服务的编号,越早安装的软件或者服务的组编号约早。用户手动创建的用户组编号从500开始
为为为什么
2022/08/06
9.5K0
Linux 用户、用户组以及权限
Linux中的用户组和权限管理
简单概括安全模型为linux系统需要知道登录验证用户的身份,登录用户基于身份会有不同的权限访问系统文件,同时也会有审计功能来知道登录用户在系统什么时间做了什么。
鱼丸葱面
2020/12/22
7.8K0
Linux中的用户组和权限管理
根据分组依据对Java集合元素进行分组
业务背景:在项目中有个“分账”功能,就是支付的钱一部分要根据不同商品的分账金额自动分给平台提供商。
张张
2019/12/25
2.4K0
Linux用户、组、权限和文件
Linux系统使用一个专门的文件来将用户的登录名匹配到对应的UID值。这个文件就是 /etc/passwd文件,它包含了一些与用户有关的信息。如下:
黑白天安全
2020/04/14
11.8K0
Linux用户、组、权限和文件
Linux用户组&权限管理
Linux是一个多用户的操作系统,引入用户,可以更加方便管理Linux服务器,系统默认需要以一个用户的身份登入,而且在系统上启动进程也需要以一个用户身份去运行,用户可以限制某些进程对特定资源的权限控制。
胡齐
2019/09/23
14.3K0
Linux用户组&权限管理
Java对List列表进行分组处理(对List列表固定分组/对List列表平均分组)
将一组数据平均分成n组 即:数据分组数固定为N,每组数据个数不定,每组个数由List列表数据总长度决定 /** * 将一组数据平均分成n组 * * @param source 要分组的数据源 * @param n 平均分成n组 * @param <T> * @return */ public static <T> List<List<T>> averageAssign(List<T> source, int n) { List<List<T>> result = new Ar
目的地-Destination
2023/03/06
3.5K0
linux修改用户权限与所属组_linux修改用户组的权限
使用Linux时,需要以一个用户的身份登陆,从而限制一个使用者能够访问的资源;而组则是用来方便组织管理用户。
全栈程序员站长
2022/11/04
7.5K0
Oracle查看那些用户具有DBA权限「建议收藏」
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/09
2.2K0
Linux文件属性用户、组、权限
Linux系统中的用户是分角色的,用户的角色是由UID和GID来识别的(也就是说系统识别的是用户的UID、GID,而非用户用户名),有个UID是唯一的(系统中唯一如同身份证一样)用来标识系统的用户账号(用户名)
用户1173509
2022/05/09
2K0
Linux文件属性用户、组、权限
Prometheus监控学习笔记之Grafana用户权限分组
Grafana有账户分权和管理功能,不过和一般的账户分权管理操作不一样。Grafana通过admin账户建立organization,在不通的org内配置数据源和用户,用户隶属于不通的org,只能看到该org内的数据展示。
Jetpropelledsnake21
2019/05/23
2.5K0
SQL 找出分组中具有极值的行
你可能也遇到过这种需求:找出每个部门入职最早的员工的信息;获取每个科目最高分的学生信息;获取用户最近一次的完整登录信息。
白日梦想家
2020/07/20
1.8K0
SQL 找出分组中具有极值的行
Python对字典根据键值分组进行排序
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/119530.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/11
4.5K0
Gitlab用户在组中有五种权限
Gitlab用户在组中有五种权限:Guest、Reporter、Developer、Master、Owner Guest:可以创建issue、发表评论,不能读写版本库 Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限 Developer:可以克隆代码、开发、提交、push,RD可以赋予这个权限 Master:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心RD负责人可以赋予这个权限 Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组leader可以赋予这个权限
陈不成i
2021/06/07
3.2K0
mysql中的数据库对用户权限做限制
mysql中限定用户对数据库的权限 默认的MySQL安装之后根用户是没有密码的 先用根用户进入: # mysql -u root 执行: mysql> GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY “123456”; 用的是123456做为root用户的密码,我这里是做个例子,要是用123456做密码 那还不象不设置密码了:)
全栈程序员站长
2021/07/23
4K0
Django用户认证系统组与权限(一)
apps.User.utils.mycustombackend.custombackend.CustomBackend
Autooooooo
2020/11/09
7470
Linux下用户组、文件权限详解
用户组 在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念 所有者 所在组 其它组 改变用户所在的组 所有者 一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者 用ls ‐ahl命令可以看到文件的所有者 也可以使用chown 用户名 文件名来修改文件的所有者 文件所在组 当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组 用ls ‐ahl命令可以看到文件的所有组 也可以使用chgrp 组名 文件名来修改文件所在的组 其它组 除
小柒2012
2018/04/11
3.6K0
Linux下用户组、文件权限详解
点击加载更多

相似问题

如何在django中对其他组权限进行分组?

11

按字段对记录进行分组,并在sql中对每个组提交查询。

10

如何在BigQuery SQL中对10组用户进行分组?

12

如何检查AD用户对AD组具有哪些权限?

299

逐列对行进行分组,并在组内对另一列进行和。

33
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文