如何手动激活用户
How to activate users manually
Django 1.11.2
django-registration-redux==1.6
我正在建立一个 Intranet 网站。而且我想自己控制用户是否活跃。在 Django admin 中有这样的可能性。但是当新注册的用户确认 his/her 电子邮件时,"Active" 属性会自动设置为 True。
换句话说,我想做的是:
1)让用户注册和重设密码。
2) 站点管理员将新用户分配给一个组。具有最低权限的用户只能查看。特殊权限允许编辑、删除等。但用户必须在未经管理员批准的情况下甚至无法查看任何内容。
现在我打算为每个模型组织 can_view 权限。以上两个条件将通过将用户分配到一个组来执行。
嗯,这个好像比较麻烦。 admin 中的 "Active" 属性要优雅得多。但是当用户确认 his/her 电子邮件时 "Active" 会自动设置为 True。
你能给我一个建议吗?
虽然很诱人,但永远不要使用 is_active
来拒绝权限。该标志相当于 "deleting a user"。这也意味着用户无法登录(使用默认身份验证后端)。所以它不是 authorization 守卫,而是 authentication 守卫。
也就是说,如果您不授予权限,用户就没有权限。所以如果你实现 can_view
并设置它来保护相关的模型和视图,那么用户可以登录,但看不到任何你不希望他们看到的东西(方便用户看到她成功登录虽然 :) ).
来自评论的后续问题
可以使用一个针对每个视图检查的全局权限。当使用基于 class 的视图时,我建议扩展 LoginRequiredMixin
,将一些其他好东西塞进 IntranetCommonMixin
中,并让每个视图将其与通用基础视图之一结合起来。另见 。
您不想这样做的唯一原因是很难在规则上编写例外代码,因为第一个 "object" 表示 "yes",获胜。
Django 1.11.2
django-registration-redux==1.6
我正在建立一个 Intranet 网站。而且我想自己控制用户是否活跃。在 Django admin 中有这样的可能性。但是当新注册的用户确认 his/her 电子邮件时,"Active" 属性会自动设置为 True。
换句话说,我想做的是: 1)让用户注册和重设密码。 2) 站点管理员将新用户分配给一个组。具有最低权限的用户只能查看。特殊权限允许编辑、删除等。但用户必须在未经管理员批准的情况下甚至无法查看任何内容。
现在我打算为每个模型组织 can_view 权限。以上两个条件将通过将用户分配到一个组来执行。
嗯,这个好像比较麻烦。 admin 中的 "Active" 属性要优雅得多。但是当用户确认 his/her 电子邮件时 "Active" 会自动设置为 True。
你能给我一个建议吗?
虽然很诱人,但永远不要使用 is_active
来拒绝权限。该标志相当于 "deleting a user"。这也意味着用户无法登录(使用默认身份验证后端)。所以它不是 authorization 守卫,而是 authentication 守卫。
也就是说,如果您不授予权限,用户就没有权限。所以如果你实现 can_view
并设置它来保护相关的模型和视图,那么用户可以登录,但看不到任何你不希望他们看到的东西(方便用户看到她成功登录虽然 :) ).
来自评论的后续问题
可以使用一个针对每个视图检查的全局权限。当使用基于 class 的视图时,我建议扩展 LoginRequiredMixin
,将一些其他好东西塞进 IntranetCommonMixin
中,并让每个视图将其与通用基础视图之一结合起来。另见
您不想这样做的唯一原因是很难在规则上编写例外代码,因为第一个 "object" 表示 "yes",获胜。