Mediawiki - разрешения, позволяющие анонимным пользователям создавать страницы, но редактировать могут только пользователи - PullRequest
1 голос
/ 10 января 2012

Вторая часть этого вопроса проста. Это в LocalSettings.php:

$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['user']['edit'] = true;

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

Моя проблема заключается в том, что для установки прав на создание страницы пользователь или группа должны также иметь права на редактирование.

Я хочу, чтобы анонимные пользователи могли подавать заявки (через семантические формы), но редактировать их могли только пользователи.

Любая помощь приветствуется, Карл.

http://www.mediawiki.org/wiki/Manual:User_rights

1 Ответ

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

Я не уверен, что это возможно с текущей системой разрешений в MediaWiki. По замыслу, очень мало что может сделать пользователь без разрешения edit; это разрешение контролирует право на изменение содержимого вики любым способом. Я полагаю, вы могли бы подать запрос функции для отдельного разрешения editexisting, чтобы специально запретить только редактирование существующих страниц.

На самом деле, я полагаю, вы могли бы реализовать такое разрешение самостоятельно с помощью userCan hook , что-то вроде этого:

function checkEditExisting( &$title, &$user, $action, &$result ) {
    if ( $action != 'edit' ) return true;
    if ( !$title->exists() ) return true;
    if ( $user->isAllowed('editexisting') ) return true;
    return $result = false;  // page exists, no permission -> disallow edit
}
$wgHooks['userCan'][] = 'checkEditExisting';

$wgGroupPermissions['*']['editexisting'] = false;
$wgGroupPermissions['user']['editexisting'] = true;

Обратите внимание, что я вообще не тестировал приведенный выше код, но он достаточно прост, и, если повезет, он может сработать.

...