Как я могу установить разрешения для отдельных вики-страниц? - PullRequest
1 голос
/ 27 февраля 2012

В нашей вики есть несколько страниц, которые я бы хотел защитить от редактирования людьми, не являющимися назначенными владельцами этой страницы.

В настоящее время мы работаем с MediaWiki v1.15.4 и пока не можем обновиться до 1.18.

Заранее спасибо.

Редактировать: просто чтобы уточнить, разрешения должны быть установлены для отдельных пользователей, а не для групп.

1 Ответ

1 голос
/ 29 февраля 2012

У меня была похожая проблема, когда мне нужно было больше гибкости, чем предлагаемая система по умолчанию. Я решил это с помощью этого скрипта (встроенного в расширение MediaWiki):

// check each page for gossip permissions
$wgHooks['ArticlePageDataBefore'][] = 'GossipProtection_check_permissions';

/**
 * ArticlePageDataBefore hook
 * 
 * $article: article that is requested
 * ($fields: not important)
 */
function GossipProtection_check_permissions($article, $fields) {
    global $wgUser;
    $title = $article->getTitle()->mTextform;
    if(is_gossip_page($title))
        if(!this_user_is_allowed_on_page($title))
            die('You are not allowed on this page');
    return true;
}

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

...