gpt4 book ai didi

mediawiki - 防止用户在 Mediawiki 中更改密码

转载 作者:行者123 更新时间:2023-12-04 18:44:46 27 4
gpt4 key购买 nike

我正在寻找一种方法来防止所有用户在 Mediawiki 中更改他们的密码(因为帐户创建和密码更改由中央 SSO 服务器处理)。

据我所知,Mediawiki 用户可以通过两种方式更改密码:使用登录页面中的“忘记密码链接”(最佳解决方案是在此处显示自定义链接的能力)和更改密码的能力用户首选项中的密码。

我还没有找到合适的方法,因为这似乎无法通过 LocalSettings.php 中的简单配置来实现。

很感谢任何形式的帮助。

最佳答案

经过一些黑客攻击,这里是完整的解决方案。我没有在任何地方找到它,所以如果它对你有用,请给它一个大拇指:

通过将以下更改放入 LocalSettings.php 来自定义登录屏幕的输出

$wgHooks['UserLoginForm'][] = 'lfChangeLoginPage';
function lfChangeLoginPage( &$template ) {
$template->set('canreset',false); // removes default reset password link
$template->set('resetlink',false);
// Use the following line to show your own 'reset password' link above the login fields
$template->set('link',"<a href='http://www.somedomain.org/lostpassword'>Forgot your password?</a>");
return true;
}

禁用重置密码页面,以防万一有人知道直接 URL:
// Disallow password reset on password reset page
$wgHooks['UserLoginMailPassword'][] = 'MailPasswordIsAllowed';
function MailPasswordIsAllowed ( $username, $error ) {
$error = wfMsg( 'resetpass_forbidden' );
return false;
}

禁止在密码更改页面上更改密码(由用户首选项中的链接引用):
$wgHooks['PrefsPasswordAudit'][] = 'ChangePasswordIsAllowed';
function ChangePasswordIsAllowed ( $user ) {
throw new PasswordError( wfMsg( 'resetpass_forbidden' ));
return true;
}

在用户首选项中隐藏密码更改链接:
$wgHooks['GetPreferences'][] = 'RemovePasswordChangeLink';
function RemovePasswordChangeLink ( $user, &$preferences ) {
unset($preferences['password']);
return true;
}

关于mediawiki - 防止用户在 Mediawiki 中更改密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16893589/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com