【问题标题】:MediaWiki - Require confirmed emails before allowing read?MediaWiki - 在允许阅读之前需要确认的电子邮件?
【发布时间】:2019-01-10 20:57:49
【问题描述】:

我正在尝试为大学生设置 MediaWiki。使用EmailDomainCheck,我可以防止除拥有基于大学电子邮件的人之外的任何人创建帐户。使用$wgEmailConfirmToEdit,我可以要求在用户编辑文件之前确认电子邮件。但是,实际上,用户可以使用来自正确域的虚假电子邮件来创建帐户。使用该帐户,他们可以查看所有页面(即使他们无法编辑它们)。除非电子邮件得到确认,否则我不想授予他们读取权限。这可能吗?请注意,我希望自动接受正确域的所有确认电子邮件。它不需要手动创建帐户。

【问题讨论】:

    标签: mediawiki


    【解决方案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");
    

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

    【讨论】:

    • 我还没有做很多测试来检查各种情况,但这似乎有效。但是,其他人应该注意,您可能需要将一些页面列入白名单,例如 $wgWhitelistRead = array("Main_Page", "Special:CreateAccount", "Special:ConfirmEmail"); 以允许用户进入帐户创建页面,并使用确认电子邮件页面确认他们的电子邮件。
    【解决方案2】:

    理论上,

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

    应该可以。在实践中,MediaWiki 几乎总是与“每个人都可以阅读”或“您可以在登录后阅读”设置一起使用,而其他设置则没有经过很好的测试,所以如果该 wiki 有一些高度敏感的私人信息,我不会这样做,但我认为大学网站并非如此。

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

    【讨论】:

    • * 不是只屏蔽未登录的用户,但仍允许登录但未确认的电子邮件用户吗?
    • 您需要覆盖$wgGroupPermissions 中启用读取的所有字段,并且新用户可以拥有它们(有效权限将是MediaWiki OR-ing 与您组的$wgGroupPermissions 子数组是)的成员。你是对的,默认情况下也包括user。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-12
    • 1970-01-01
    • 1970-01-01
    • 2018-11-14
    • 1970-01-01
    • 1970-01-01
    • 2014-12-21
    相关资源
    最近更新 更多