MediaWiki-在允许阅读之前需要确认电子邮件吗?

时间:2019-01-10 20:57:50

标签: mediawiki

我正在尝试为大学生建立MediaWiki。使用EmailDomainCheck,我可以阻止除拥有大学电子邮件的人之外的任何人创建帐户。使用$wgEmailConfirmToEdit,我可以要求用户先确认电子邮件,然后才能编辑文件。但是,实际上,用户可以使用来自正确域的伪造电子邮件来创建帐户。使用该帐户,他们可以查看所有页面(即使他们不能编辑它们)。除非确认电子邮件,否则我不希望授予他们读取权限。这可能吗?请注意,我希望自动接收正确域的所有已确认电子邮件。它不需要手动创建帐户。

2 个答案:

答案 0 :(得分:1)

理论上,

$wgGroupPermissions['*']['read'] = false;
$wgGroupPermissions['emailconfirmed']['read'] = true;

应该工作。在实践中,MediaWiki几乎总是与“每个人都可以阅读”或“如果您已登录就可以阅读”设置一起使用,其他的则没有得到很好的测试,因此,如果该Wiki具有一些高度敏感的私人信息,我就不会这样做,但我想对于大学网站而言并非如此。

或者,将电子邮件确认步骤集成到帐户创建中应该不难,但是您必须为此编写代码。 EmailAuth(在登录期间进行类似的检查)可能会让您了解其外观。

答案 1 :(得分:1)

您可以尝试以下方法,如Documentation

所述
# Disable for everyone.
$wgGroupPermissions['*']['read'] = false;
# Disable for users, too: by default 'user' is allowed to read, even if '*' is not.
$wgGroupPermissions['user']['read'] = false;
# Make it so users with confirmed email addresses are in the group.
$wgAutopromote['emailconfirmed'] = APCOND_EMAILCONFIRMED;
# Hide group from user list.
$wgImplicitGroups[] = 'emailconfirmed';
# Finally, set it to true for the desired group.
$wgGroupPermissions['emailconfirmed']['read'] = true;

正如詹妮·肖尔斯(Jenny Shoars)所述,您可能希望将某些页面列入白名单,例如:

$wgWhitelistRead = array("Main_Page", "Special:CreateAccount", "Special:ConfirmEmail");

这样非注册用户仍然可以创建帐户等。