Extension:ConfirmAccount
![]() 发行状态: 稳定版 |
|
---|---|
![]() |
|
实现 | 用户身份 , 数据库 , 特殊页面 |
描述 | |
作者 | Aaron Schulz留言 |
兼容性政策 | 快照跟随MediaWiki发布。 master分支不向后兼容。 |
MediaWiki | >= 1.37.0 |
数据库更改 | 是 |
表 | account_requests account_credentials |
许可协议 | GNU通用公眾授權條款2.0或更新版本 |
下載 | README |
|
|
|
|
季度下載量 | 197 (Ranked 35th) |
正在使用的公开wiki数 | 953 (Ranked 279th) |
前往translatewiki.net翻譯ConfirmAccount扩展 | |
問題 | 开启的任务 · 报告错误 |
ConfirmAccount扩展使得直接创建账户失效,必需由一名官员批准此新账户。 仍然可以通过配置用户权限 来启用直接创建账户這個功能(如果您希望管理员 或行政官員能直接创建這些账户的話)。
(從1.39版起)ConfirmEdit 扩展是可(与「确认账号扩展」一起结合)使用的,以便使用验证码来阻止如雪片般飛來的请求。
安裝
- 下载文件,并将解压后的
ConfirmAccount
文件夹移动到extensions/
目录中。
开发者和代码贡献人员应从Git安装扩展,输入:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/ConfirmAccount - 将下列代码放置在您的LocalSettings.php 的底部:
wfLoadExtension( 'ConfirmAccount' ); $wgGroupPermissions['*']['createaccount'] = false; // 必须使用,通过此扩展强制执行账户的请求 $wgGroupPermissions['bureaucrat']['createaccount'] = true; // 可选,以允许该受信用户组创建账户
- 运行更新脚本,它将自动创建此扩展必须依赖的数据库表。
- 根据需要进一步配置。
- 确保wiki拥有
$wgUploadDirectory
的写入权限。 - 还请注意已知问题,因为它们可能会影响您的wiki。
- 完成 – 在您的wiki上导航至Special:Version,以验证已成功安装扩展。
配置
选配
在LocalSettings.php 內、wfLoadExtension('ConfirmAccount');
之后有几个配置的变量可以进行调整
有关可设置的所有变量,请参见extension.json 中的第"config"
部分。
$wgMakeUserPageFromBio = false;
,则可以停用该行为。$wgConfirmAccountRequestFormItems['Biography']['enabled'] = false;
$wgConfirmAccountRequestFormItems['Biography']['minWords'] = 10;
$wgGroupPermissions['sysop']['createaccount'] = false;
例如:
$wgWhitelistRead = [
'Special:RequestAccount',
'Main Page'
];
要根据用户的兴趣对其进行进一步分类,您可以设置MediaWiki:Requestaccount-areas。 其格式應該是這樣的:
- *Topic|Topic wiki page|text to append to all interested users' bios |text to append to all interested users' bios in group0|text to append to all interested users' bios group1|text to append to all interested users' bios in group2|...
这些group的数字基於$wgAccountRequestTypes
。
因此,如果0是"authors"的索引,那么对某一主题感兴趣的"authors"就会有group0這幾個字附加到其传记中。
例如,如果用户可以被批准为authors或编辑,这就非常有用。
authors可以有 "类别:X authors",其中X是一个主题,如"数学",编辑可以有"类别:x 编辑"。
您可以拥有任意多个groups,但至少需要一个。
最少
为了防止垃圾信息,可以使用更简单的"申请账户"来人工审核新用户注册,而不需验证码、黑名单和过滤器。 只會要求提供用户名、电子邮件地址和简短的信息。 請在LocalSettings.php的require_once "$IP/extensions/ConfirmAccount/ConfirmAccount.php";行之后中添加以下内容。
$wgMakeUserPageFromBio = false;
$wgAutoWelcomeNewUsers = false;
$wgConfirmAccountRequestFormItems = [
'UserName' => [ 'enabled' => true ],
'RealName' => [ 'enabled' => false ],
'Biography' => [ 'enabled' => false, 'minWords' => 50 ],
'AreasOfInterest' => [ 'enabled' => false ],
'CV' => [ 'enabled' => false ],
'Notes' => [ 'enabled' => true ],
'Links' => [ 'enabled' => false ],
'TermsOfService' => [ 'enabled' => false ],
];
可选择调整系统信息:requestaccount-text, requestaccount-notes, requestaccount-ext-text, requestaccount-acc-text。
用法
Special:ConfirmAccounts
上确认账户申请(测试版表格)- 作为官員(或其他拥有confirmaccount权限的用户),請浏览
Special:ConfirmAccounts
- 点击「审查」。
- 您将看到整个包含用户数据的表单。 仔细審查表格,然后,创建账户不然就拒绝请求。
- 如果你选择创建账户,用户传记将成为其用户页,用户页将自动创建,默认摘要为「创建包含新用户传记的用户页」。
- 创建账户后,可通过在
Special:UserCredentials
中输入用户名来查询用户在请求时输入的数据。
LocalSettings.php
中设置一个电子邮件/邮件列表:
$wgConfirmAccountContact = 'Bureaucrat@domain.com';
向多个用户发送通知电子邮件
该扩展允许向多个审批人发送电子邮件,以便在这些用户拥有confirmaccount-notify
权限的情况下确认账户。
这是$wgConfirmAccountContact
设置的补充/备选方案。
要实现这一点(例如对于官員),可以在LocalSettings.php 文件中添加以下内容,为他们提供这一权限:
$wgGroupPermissions['bureaucrat']['confirmaccount-notify'] = true;
增强
修剪频率
为對抗机器人请求,默认设置可防止被拒绝的电子邮件帐户在被拒绝后的一段随机时间内再次请求帐户。 如果希望被拒邮件在被拒后能立即或在固定等待时间(被拒后几天、几周、几个月甚至几年)后重新申请账户,请执行以下2个步骤:
1) 在LocalSettings.php
文件中,在必填声明后,将Rejected-Age设置为0(拒绝后立即失效),或设置为所需的等待时间(以秒为单位):
wfLoadExtension( 'ConfirmAccount' );
$wgRejectedAccountMaxAge = 0;
2) 在/frontend/specialpages/actions/RequestAccount_body.php
文件中显示请求表单的函数showForm()
的末尾添加一行,以便在任何新请求之前强制修剪:
原始代码:
$out->addWikiMsg( 'requestaccount-footer' );
}
新代码:
$out->addWikiMsg( 'requestaccount-footer' );
# PRUNE
ConfirmAccount::runAutoMaintenance();
}
“请求帐户”链接
如果您想添加“请求帐户”的登录链接,最新版本的扩展已为您添加了这一功能。 然而,如果这不能動作,則您需要从Git更新到最新版本的ConfirmAccount分支。 例如,如果你目前使用的是MediaWiki 1.35版,你应该是停留在REL1_35分支上,但請从Git拉取以获取最新的修改。
已知的问题
- 如果设置了
$wgEmailConfirmToEdit = true;
,用户需要两次的电子邮件确认之后才能编辑。请参阅工單T182337获取更多信息。 - 请勿设置/创建MediaWiki:Requestaccount-areas/xx,其中xx是语言代码,每行的第一部分用作在数据库中存储账户申请者检查项目的键值。
- 旧版本的 MediaWiki 可能不会在用户登录表单中显示Special:RequestAccount的链接。 您可以编辑MediaWiki:loginprompt来補救这个问题。
- 如果您的电子邮件客户端在发送邮件前丢失了邮件数据,用户将不會得到他的密码但卻可能拥有一个账户。 由于没有人知道密码,您可能需要用Special:ResetPassword向他们发送新密码。
- 如果只有少数人查看确认账户页面,随机触发的旧请求修剪就不会经常触发,因此被拒绝的旧请求可能会一直存在。 这可以防止电子邮件地址在未知时间段内重新申请账户。 您可以在任何新"请求"被提交之前强制修剪,从而覆盖这种行为并允许立即重新请求。此处说明.
- Extension is not working anymore with mediawiki 1.43; see here
- 与LDAP身份验证扩展集成
- [solved] 验证码:在 1.39 版之前,验证码未经验证(见工單T168783),只有一个针对 hCaptcha 的特定补丁(见Topic:W449yd63slfossl2#flow-post-w457lxnfmrb51gct)。
故障排除
- 通知邮件不会发送
如果您正在进行测试,请注意用户必须首先通过电子邮件发送给他们的链接确认其电子邮件地址,然后电子邮件将发送给官員以便确认账户。
請确保与扩展相关的设置是在require_once
這一行之后才引入的。
不是之前!否则扩展将看不到这些设置,然後,舉例來說,它們會靜悄悄地失效。
wfLoadExtension( 'ConfirmAccount' );
$wgConfirmAccountContact = "admin@example.com";
还要注意的是,在使用confirmaccount-notify
设置时,群组中的每个用户(如系统管理员)都不会收到通知,除非他们在Special:Preferences中的电子邮件选项允許"允许其他用户用电子邮件联系我"並且他们已在同一表单中确认了自己的电子邮件地址。
参见
- Extension:InviteSignup, 針对管理员所发起的(批量)账户创建
- TwnMainPage扩展,提供一个"沙盒",用户可以在其中创建一个无特权账户,提出一些编辑建议然後要求批准。
- Extension:Semantic Signup
- Extension:AcceptTermsOfUse - Allows for enforcing Terms of Use for self-service account creation.
此扩展在以下wiki农场/托管网站和/或软件包中提供: 這不是一份權威名單。 即使某些wiki农场/托管网站和/或软件包未在这里列出,它们也可能提供此扩展。 请检查你的wiki农场/托管网站或软件包以确认提供情况。 |