密码重置-对LDAP帐户禁用

时间:2013-12-14 作者:Chris

我正在使用wpDirAuth插件来允许LDAP登录和自动创建帐户。我遇到的一个障碍是LDAP用户仍然可以请求密码重置。他们收到带有链接的电子邮件,但链接显示密钥无效。所以它不会试图更改他们的密码,这很好。

但是,我想阻止他们发送电子邮件,而是在提交表单时发送一条消息,说“对不起,您的帐户密码无法在此网站上更改。请联系IT服务台”。

提交表单后,我是否可以使用挂钩来检查帐户是否为LDAP(我可以检查公司电子邮件地址以识别LDAP帐户)并返回错误消息?

1 个回复
最合适的回答,由SO网友:Subharanjan 整理而成

Code for checking and blocking LDAP users to reset password.

/**
 * Checks whether a user is LDAP user and restricts to reset password.
 *
 * @param  bool   $allow    Whether the password can be reset.
 * @param  int    $user_id  The ID of the user.
 * @return bool|WP_Error
 */
function ldap_restrict_password_reset( $allow, $user_id ) {

    $user = get_user_by( \'id\', $user_id );
    if ( ! empty( $user ) ) {
        $user_login   = stripslashes( $user->data->user_login );
        $user_email   = stripslashes( $user->data->user_email );

        // check if the user a LDAP user
        if( $user_email === \'[email protected]\' ) {
            return new WP_Error(\'no_password_reset\', __(\'Password reset is not allowed for this LDAP user on this site.\'));
        }
    }

    return $allow;
}
/* Filters whether the user\'s password can be reset. */
add_filter( \'allow_password_reset\', \'ldap_restrict_password_reset\', 10, 2 );
Note:add code to get and check if the user is a LDAP 是否为用户。

=========================================================

这些是一些可以用来停止发送电子邮件并显示错误消息的挂钩。

/**
 * Fires before a new password is retrieved.
 *
 * @since 1.5.1
 *
 * @param string $user_login The user login name.
 */
do_action( \'retrieve_password\', $user_login );

/**
 * Filter whether to allow a password to be reset.
 *
 * @since 2.7.0
 *
 * @param bool true           Whether to allow the password to be reset. Default true.
 * @param int  $user_data->ID The ID of the user attempting to reset a password.
 */
$allow = apply_filters( \'allow_password_reset\', true, $user_data->ID );

if ( ! $allow )
    return new WP_Error(\'no_password_reset\', __(\'Password reset is not allowed for this user\'));
else if ( is_wp_error($allow) )
    return $allow;
以上是来自wp登录的部分代码。php文件。http://wpseek.com/retrieve_password/

结束

相关推荐

使用getText翻译wp-login.php无法将`Back to`翻译成其他语言

我创建了一个插件来翻译wp登录的文本。php页面翻译成阿拉伯语,除了Back to 它出现在登录表单的底部,我无法将其翻译成阿拉伯语我的网站名叫Foodonia,我想翻译一下← Back to Foodonia 到العودة إلى فودنيا , 我尝试了以下每种方法:← Back to Foodonia Back to Back to Foodonia ← Back to Foodonia ← Back to 这是我的密