tlokuus / oc-disablepassword-plugin
October CMS禁用用户密码插件
Requires
- php: >=7.0.1
- composer/installers: ~1.0
- rainlab/user-plugin: dev-master
This package is auto-updated.
Last update: 2024-09-08 17:37:34 UTC
README
此插件允许为OctoberCMS标记用户密码为“禁用”。禁用密码的用户将无法登录,直到他们设置新的密码(例如通过重置密码表单或“更改密码”页面)。
这对于提供第三方认证方法的网站很有用。例如,当用户使用Google在您的网站上注册时,您可能想创建一个新账户,但不需要密码。因此,用户将无法使用登录/密码表单,只能通过Google登录,直到他们决定设置密码。
此外,这些用户在编辑账户详情时也不会被要求输入当前密码。
要求
此插件需要RainLab User插件。为了使此插件有用,您应该在您的网站上提供其他认证方法。
设置
此插件将属性tlokuus_disablepassword_is_disabled
添加到用户模型中。您可以通过检查此属性的值来检查用户是否没有密码。
每次您通过第三方认证方法注册新用户时,应将此属性设置为true
。
$new_user = Auth::register([ 'email' => 'john@example.com', 'tlokuus_disablepassword_is_disabled' => true ]);
tlokuus_disablepassword_is_disabled
属性也可以在后台手动触发。请注意,当在现有用户上启用时,将删除旧用户密码。
设置新密码后,tlokuus_disablepassword_is_disabled
属性将自动关闭。
自定义错误消息
当禁用密码的用户尝试使用登录/密码组合登录时,将触发auth.user_without_password_login_attempt
事件并显示错误消息。您可以根据需要自定义错误消息,以指导用户如何登录。
Event::listen('auth.user_without_password_login_attempt', function($user, &$message){ if(/* User has linked its Google account */){ $message = 'A matching user has been found, but the account has been created with Google. Please use your Google account to login.'; }else{ $message = 'No password has been set for this user. Please use the Forgot password feature.'; } });
账户编辑页面
此插件覆盖了RainLab User插件中的账户组件,允许编辑没有密码的用户的账户详情,即使requirePassword
属性已被启用。
如果您编辑了RainLab User插件中账户组件的默认模板,请确保您仍然检查updateRequiresPassword
属性。
对于没有密码的用户,此属性将自动设置为false
,以便他们能够编辑他们的账户详情(包括设置密码)。