MediaWiki - Требовать подтвержденные электронные письма, прежде чем разрешить читать? - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь настроить MediaWiki для студентов университета. Используя EmailDomainCheck , я запрещаю кому-либо, кроме лиц с университетской электронной почтой, создавать учетные записи. Используя $wgEmailConfirmToEdit, я могу потребовать подтверждения электронной почты, прежде чем пользователь сможет редактировать файлы. Тем не менее, как таковой, пользователь может использовать поддельную электронную почту из правильного домена для создания учетной записи. С помощью учетной записи они могут просматривать все страницы (даже если они не могут редактировать их). Я не хочу предоставлять им доступ на чтение, если электронная почта не была подтверждена. Это возможно? Обратите внимание, я хочу, чтобы все подтвержденные электронные письма соответствующего домена автоматически принимались. Не требует ручного принятия учетной записи.

Ответы [ 2 ]

0 голосов
/ 14 января 2019

Вы можете попробовать следующее, как указано в Документация

# 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;

Как упоминала Дженни Шоарс, вы можете добавить в белый список некоторые страницы, такие как:

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

Так что незарегистрированные пользователи все еще могут создавать учетные записи и тому подобное.

0 голосов
/ 11 января 2019

В теории,

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

должно работать. На практике MediaWiki почти всегда используется с настройками «каждый может читать» или «вы можете прочитать, если вы вошли в систему», а другие не очень хорошо протестированы, поэтому, если в этой вики была какая-то очень конфиденциальная личная информация, я бы этого не делал Но я думаю, что для университетского сайта это не так.

В качестве альтернативы, не должно быть слишком сложно интегрировать шаг подтверждения по электронной почте в создание учетной записи, но вам придется написать код для этого. EmailAuth (который выполняет аналогичную проверку при входе в систему) может дать вам представление о том, как это будет выглядеть.

...