我正在构建一个应用程序,假定其工作流程存在某些组和权限.例如,"成员"可以登录应用程序并查看和编辑他们的个人数据,但无法看到通常会在同一屏幕上显示的注释."员工"可以查看这些笔记并创建或编辑自己的笔记,但只有"会员管理员"才能删除或编辑任何人的笔记.
我的问题是引导这个应用程序的数据.我可以为组创建JSON fixture数据,但是我必须对PK进行硬编码,这看起来像是不好的做法(如果我想使用的第三方应用程序做同样的事情并且存在冲突会怎样?)更大问题是权限 - 我必须将PK添加到权限,而权限反过来又会有PK到他们的内容类型.
我已经读过使用post_syncdb钩子以更加编程的方式添加初始数据,我希望这将有助于我解决硬编码的PK问题.但我想知道这是否是这个问题的最佳解决方案,或者我是否"滥用"Django组和权限概念,在这里,应该做其他事情,比如创建新模型或只是放置标志(如" is_member_manager")在我的用户个人资料模型等.
我想在CentOS系统上使用python创建一个用户组.当我说'使用python'时,我的意思是我不想做像os.system这样的事情,并给出unix命令来创建一个新的组.我想知道是否有任何python模块处理这个问题.
在网上搜索没有透露我想要的东西,除了python用户组..所以我不得不问这个.
我通过搜索SO了解了grp模块,但是找不到有关创建组的任何信息.
编辑:我不知道我是否必须为此开始一个新问题,但我也想知道如何将(现有的)用户添加到新创建的组中.
任何帮助赞赏.谢谢.
我喜欢权限和组在Active Directory中工作的方式,但我不想将我的应用程序与AD绑定.
是否存在包含与AD相同功能的现有库?特别是,能够创建组,将用户分配到组,添加组的权限,以及查看用户或组的应用权限?
在用户对象(编辑用户)的默认Django管理视图中,可以编辑用户的组成员资格.如果我还想反过来怎么办?即,在组编辑页面中,可以选择属于正在编辑的组的用户.
正如我所看到的,Django没有从Group到User对象的ManyToMany映射,因此无法(?)为此特定情况实现ModelAdmin类.如果我可以创建一个额外的UsersOfGroup模型类并在Django的Group模型的ManyToMany字段中将其用作直通属性,那么可能有一种方法.
任何想法,这是否可以使用ModelAdmin技巧实现,或者我只需要为编辑组创建自定义视图?
我已经检查了这两个问题,但他们并没有做同样的事情:
和
更新: 克里斯的答案几乎就在那里.:)该组具有对用户集的引用,但它被称为user_set,而不是用户.所以这些是我所做的改变:
if self.instance and self.instance.pk:
self.fields['users'].initial = self.instance.user_set.all()
Run Code Online (Sandbox Code Playgroud)
和
if group.pk:
group.user_set = self.cleaned_data['users']
Run Code Online (Sandbox Code Playgroud) 我想知道unix命令组是否还有其他C库,
$ groups ---- lists all the group id's of the user.
有一个名为getgroups()的方法,但此方法将返回用户组。有没有一种方法可以使用C为特定用户获取组。
我正在尝试在django应用程序中实现自定义用户模型。
如果我仅复制并粘贴本文中的代码,则效果很好。但我希望这个自定义用户模型具有权限和组。因此,我将此继承添加到models.py中:
class MyUser(AbstractBaseUser, PermissionsMixin):
Run Code Online (Sandbox Code Playgroud)
并将这些字段放入admin.py MyUserAdmin(UserAdmin)类:
('Permissions', {'fields': (
'is_admin', 'is_staff', 'is_active', 'groups', 'user_permissions',
)}),
Run Code Online (Sandbox Code Playgroud)
但这对我来说很奇怪:
据我所知,它必须是两个容器:左边(我有)显示所有可用的组和权限,右边(我没有)显示所有当前用户的组和权限。
PS我尝试谷歌为它,发现只有一个帖子在reddit上是10个月大,但没有解决方案。
我搜索过,在其他任何地方都找不到这个答案。对于没有脚本经验的人来说,如果这是一个菜鸟问题,我深表歉意。
我正在尝试创建一个 bash 脚本来设置一个服务器,其中包含应用程序所需的所有软件。简而言之,在安装 docker 时,我需要将当前用户添加到 docker 组“usermod -aG docker”,然后从那里拉一些容器。
我遇到的问题是,因为我已将该用户添加到一个组中,所以他们需要先注销并重新登录,然后才能获得在脚本中稍后执行任何操作的任何权限。这当然会破坏脚本并结束 shell 会话。有没有办法在同一个脚本中注销并重新登录,或者事情需要变得更复杂一些?
感谢任何人对此的帮助。希望这对某人来说是一个简单的答案。
我有一个使用 Keycloak 保护的 Web 应用程序。为了使服务描述简短,我们将用户和文档作为服务中的实体。用户可能无权访问任何文档或访问多个文档,并且可以编辑或阅读该文档。
目前我们有管理员、最终用户、开发人员等角色。然后,我们在 Keycloak 外部保留一个数据库表,该表将文档映射到用户以及哪个用户对哪个文档具有什么访问级别。我们所有的最终用户在 Keycloak 中都具有 EndUser 角色。每次最终用户尝试读取/编辑文档时,我们都必须在数据库表中进行查找以获取授权。
我们想将该表迁移到 Keycloak。据我了解,我基本上有两种选择:
创建很多角色,每个文档两个角色,名称如doc_read_[DOCUMENT-ID]和doc_edit_[DOCUMENT-ID]等等。然后将正确的角色分配给正确的用户。这里的缺点是角色的数量将会增加很多。此外,附加到用户的角色数量将非常大。
为每个文档创建一个组,名称为文档 ID。有不同的读/写子组,然后将用户添加到正确的组中。缺点是组的数量会非常多。另外,我将依赖组名称的授权,因此组名称列表必须映射到令牌。
我不想为每个用户添加带有文档 ID 的用户属性。通过这种方法,我无法获得文档的概述并查看哪些用户可以访问给定文档。
这里的最佳实践是什么?还有其他解决方案可以解决这个问题吗?这一定是一个非常常见的设置。
在Graph Api Explorer中,我没有找到任何许可,例如user_groups。我选择了所有的“用户数据权限”和“扩展权限”,但是没有用。
在图api资源管理器中,我正在使用此命令GET->/v2.4/me/groups。我得到空的JSON数据,像这样。
{
"data":[
]
}
Run Code Online (Sandbox Code Playgroud)
并且,如果我使用的是旧版的api版本2.2,GET->/v2.2/me/groups那么我只能获得我所管理的组,而不是所有组。
如果有人有此经验,也有解决方案,请帮助我解决问题。
facebook usergroups facebook-graph-api facebook-javascript-sdk facebook-group
所以我知道在 postgres 中,组只不过是一个角色。但我仍然会在这里使用组。
假设我创建了一个名为 my_group 的组作为超级用户。
我是用户user_1。
我想授予 user_1 权限以将更多用户添加到 my_group 中。
作为超级用户,我需要执行什么命令才能执行此操作?
usergroups ×10
django ×3
permissions ×3
linux ×2
bash ×1
c ×1
c# ×1
django-admin ×1
docker ×1
facebook ×1
keycloak ×1
logout ×1
membership ×1
postgresql ×1
privileges ×1
python ×1
role ×1
roles ×1
security ×1
shell ×1