使用 django-mama-cas 和 django-cas-ng 验证用户时是否可以应用组成员资格?

问题描述 投票:0回答:1

我正在使用 django-mama-cas (2.4.0) 和 django-cas-ng (3.5.10) 跨几个 django (1.11) 项目管理用户授权(单点登录、单点注销、组成员身份)。我可以使用 cas 服务器将用户属性(first_name、last_name、电子邮件地址)应用到 cas-ng 客户端 mama-cas 中的回调 'mama_cas.callbacks.user_name_attributes' 并在我的 cas-ng 客户端上设置 CAS_APPLY_ATTRIBUTES_TO_USER = True。

在我的 mama-cas 服务器上,我还将用户添加到多个组(下面的片段),然后我想将其应用于 cas-ng 客户端上的用户。

group = Group.objects.get(name=groupname)
user.groups.add(group)

但是,当我尝试在 mama-cas 中使用回调“mama_cas.callbacks.user_model_attributes”时,没有任何组成员资格应用于我的客户(我通过管理界面和 django shell 检查)。

是否可以将 mama-cas 的组成员身份应用到 cas-ng 中,或者我做错了什么?如果不可能,我的下一个最佳想法是创建一些布尔自定义用户属性,即 user.is_member_groupA 等,但欢迎提出建议。

提前致谢

更新 1: 从 mama-cas callbacks.py 中,我看到只有 user._meta_fields 中的字段被添加到返回的属性字典中,而 user.groups 等不包含在此处。据此,我假设组成员身份不打算像我正在尝试的那样从 mama-cas 应用到 cas-ng?

python django cas
1个回答
0
投票

后代:

如果您使用的是虚拟环境,您可以在类似于 lib/python3.10/site-packages/mama_cas.

的地方找到并编辑 callbacks.py

您可以通过 request.session['attributes'] 访问 callbacks.py 中自定义函数返回的属性。

如果有人可以留下描述这些的官方文档的链接,我们将不胜感激,因为我只是偶然发现了这些。

就我而言,我还刚刚在 django-mama-cas 服务器中创建了一个带有组或权限字段的自定义用户模型,然后通过 request.session['attributes'] 访问了 django-cas-ng 客户端中的值。虽然我觉得那里有更好的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.