更改用于在运行时访问连接到 django 网站的数据库的用户



根据本教程,目前我为我正在处理的网站实现了登录例程。

此外,我没有使用django自己的系统对用户进行身份验证,因为我正在对我公司的LDAP(django-auth-ldap(使用身份验证。

目前,我正在使用普通用户登录数据库,该数据库可以普遍访问所有数据,这也为登录网站的任何用户提供了完全访问权限。

为了避免这种情况,我想知道如何以刚刚登录网站的个人用户身份连接到数据库。

提前感谢,对不起英语不好

限制用户对功能的访问和使用数据库进行身份验证在 Django 中单独处理。你也许可以从数据库中读取用户的权限,并将它们映射到 Django 权限,但这并不重要(关于权限,请参阅 https://docs.djangoproject.com/en/2.1/topics/auth/default/#permissions-and-authorization(。

在功能受限于授权的 UI/UX 中,前端和后端需要注意需要检查权限,并且需要以某种方式将缺少的授权传达给用户。

例:

允许组 A 中的用户删除 X。他们看到"删除"按钮,并且可能还有一个可以删除 X 的 AJAX 调用。

不允许 B 组中的用户删除 X。他们看不到删除按钮,可以删除 X 的 AJAX 调用需要检查该权限和/或用户组成员身份。

如果您只使用数据库级别的授权层,那么 - 您如何知道是否应该显示"删除"按钮以及在 AJAX 调用中检查什么?

嗨! 如果我正确解决了您的问题,那么您创建的用户每次都是超级用户,对吗?

好吧,如果你使用的是 Djangoauth.User模型,你可以User_object.is_superFalse然后限制用户的访问,尽管 if-else 在视图中!(User_object 是身份验证的对象。用户模型(

这有什么意义吗?

顺便说一句,一个旁注,我在制作第一个自定义用户模型时犯的一个错误:确保使用 Django 哈希和盐存储您的密码!

最新更新