2012-01-09 27 views
1

這個問題的第二部分很容易。這在LocalSettings.php中:Mediawiki - 權限,以便匿名可以創建頁面,但只有用戶可以編輯

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

指示只有用戶可以編輯。

我的問題是,要設置createpage權限,用戶或組必須也具有編輯權限。

我希望匿名用戶能夠提交(通過語義形式),但只有用戶能夠編輯它們。

任何幫助表示讚賞, 卡爾。

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

回答

0

我不知道這是可能與MediaWiki的當前的權限系統。按照設計,沒有edit權限的用戶可以做的事情非常少;該權限控制以任何方式修改wiki內容的權利。我想你可以提交一個單獨的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; 

請注意,我沒有測試上面的所有代碼,但它足夠簡單,一些運氣,它可能只是工作。

相關問題