最近有需求需要调整页面的编辑权限,将单个页面的编辑权限设在某一群组中。下面是实现方法。
首先我们来看怎么添加群组
Meidiawiki本身默认群组只能分成未注册、注册、操作员、行政员。不过他提供了非常方便的添加群组的方法。。我们以添加groupone群组为例,操作如下:
打开LocalSettings.php文件,添加如下即可
$wgGroupPermissions['groupone' ]['read'] = true;
$wgGroupPermissions['groupone' ]['edit'] = true;
$wgGroupPermissions['groupone' ]['createpage'] = true;
groupone是群组名, read,edit,createpage是他的权限,可以根据需要多多添加,具体的权限可以参考
http://www.mediawiki.org/wiki/Manual:User_rights#Default_rights
接下来我们用页面保护功能来控制页面编辑人员
在 LocalSettings.php中添加如下
#设置一个许可权限$wgRestrictionLevels[]='groupone';
#为groupone组添加保护权限
$wgGroupPermissions[''groupone']['protect'] = true;
#设置一个名为groupone的保护许可
$wgGroupPermissions[''groupone']['groupone'] = true;
现在用户就可以对页面进行保护了。在保护时可以设置保护许可,该值来自$wgRestrictionLevels。页面保护后只有拥有保护许可权限的人可以对页面进行编辑。
注:只有编辑权限的人可以进行保护操作。
在mediawiki 1.12版中(其他版未知),将sysop许可转成了protect权限。 这样导致了如果设成sysop许可,则只要有protect权限的人就都可以进行保护操作,这样就导致了一些混乱,我们将这部分转换去掉。
在 LocalSettings.php中添加
$wgGroupPermissions[''sysop']['sysop'] = true;
修改文件includes/Title.php
将此类似代码引掉
if ( $right == 'sysop' ) {
$right = 'protect';
}
保存后大功告成。