Extension:ConfirmAccount

This page is a translated version of the page Extension:ConfirmAccount and the translation is 100% complete.
MediaWiki扩展手册
ConfirmAccount
发行状态: 稳定版
实现 用户身份 , 数据库 , 特殊页面
描述
账户必需先提交然後批准。
作者 Aaron Schulz讨论
兼容性政策 快照跟随MediaWiki发布。 master分支不向后兼容。
MediaWiki >= 1.37.0
数据库更改
account_requests
account_credentials
许可协议 GNU通用公眾授權條款2.0或更新版本
下載
README
  • $wgAutoWelcomeNewUsers
  • $wgAccountRequestTypes
  • $wgConfirmAccountNotice
  • $wgConfirmAccountCaptchas
  • $wgConfirmAdminEmailExtraFields
  • $wgConfirmAccountRequestFormItems
  • $wgConfirmAccountContact
  • $wgAccountRequestExts
  • $wgAccountRequestThrottle
  • $wgConfirmAccountFSRepos
  • $wgRejectedAccountMaxAge
  • $wgConfirmAccountSaveInfo
  • $wgConfirmAccountSortkey
  • $wgAutoUserBioText
  • $wgAccountRequestWhileBlocked
  • $wgConfirmAccountRejectAge
  • $wgMakeUserPageFromBio
  • confirmaccount
  • confirmaccount-notify
  • requestips
  • lookupcredentials
季度下載量 168 (Ranked 42nd)
正在使用的公开wiki数 953 (Ranked 279th)
前往translatewiki.net翻譯ConfirmAccount扩展
問題 开启的任务 · 报告错误

确认账户扩展使得直接创建账户失效,必需由一名官员批准此新账户。 仍然可以通过配置手册:用户权限 来启用直接创建账户這個功能(如果您希望管理员 行政官員能直接创建這些账户的話)。

(從1.39版起)ConfirmEdit 扩展是可(与「确认账号扩展」一起结合)使用的,以便使用验证码来阻止如雪片般飛來的请求。

安裝

  • 下载文件,并将其放置在您extensions/文件夹中的ConfirmAccount目录内。
    开发者和代码贡献人员应从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;
默认情况下,新用户需要填写6个字的个人简历才能提交申请表。 若要调整这一要求,例如:10个单词,請设置$wgConfirmAccountRequestFormItems['Biography']['minWords'] = 10;
系统管理员仍可直接创建账户,如果失效未被设置到
$wgGroupPermissions['sysop']['createaccount'] = false;
如果只允许已登录的用户查看页面,请記得将要求账户的页面添加到$wgWhitelistRead 之中。

例如:

$wgWhitelistRead = [
    'Special:RequestAccount',
    'Main Page'
];
在其他语言中,您必须将"Main Page"和"Special:RequestAccount"替换为它们的本地名称,例如德语维基中的"Hauptseite"和"Spezial:Benutzerkonto_beantragen"。

要根据用户的兴趣对其进行进一步分类,您可以设置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上确认账户申请(测试版表格)
  1. 作为官員(或其他拥有confirmaccount权限的用户),請浏览Special:ConfirmAccounts
  2. 点击「审查」。
  3. 您将看到整个包含用户数据的表单。 仔细審查表格,然后,创建账户不然就拒绝请求。
  4. 如果你选择创建账户,用户传记将成为其用户页,用户页将自动创建,默认摘要为「创建包含新用户传记的用户页」。
  5. 创建账户后,可通过在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向他们发送新密码。
  • 如果只有少数人查看确认账户页面,随机触发的旧请求修剪就不会经常触发,因此被拒绝的旧请求可能会一直存在。 这可以防止电子邮件地址在未知时间段内重新申请账户。 您可以在任何新"请求"被提交之前强制修剪,从而覆盖这种行为并允许立即重新请求。此处说明.
  • LDAP身份验证扩展集成
  • [solved] 验证码:在 1.39 版之前,验证码未经验证(见任务T168783),只有一个针对 hCaptcha 的特定补丁(见Topic:W449yd63slfossl2#flow-post-w457lxnfmrb51gct)。

故障排除

通知邮件不会发送

如果您正在进行测试,请注意用户必须首先通过电子邮件发送给他们的链接确认其电子邮件地址,然后电子邮件将发送给官員以便确认账户。

請确保与扩展相关的设置是在require_once這一行之后才引入的。 不是之前!否则扩展将看不到这些设置,然後,舉例來說,它們會靜悄悄地失效。

wfLoadExtension( 'ConfirmAccount' );
$wgConfirmAccountContact = "admin@example.com";

还要注意的是,在使用"确认账户-通知"设置时,群组中的每个用户(如系统管理员)都不会收到通知,除非他们在Special:Preferences中的电子邮件选项允許"允许其他用户向我发送电子邮件"並且他们已在同一表单中确认了自己的电子邮件地址。

参见