安装MediaWiki之后,发现权限设置是完全开放的,需要做一些设置,例如禁止匿名用户编辑内容等等,但程序上却没有提供设置选项。网上查询了一下,却发现设置方法各有各的说法,没法,只有突破万难,到官方网站上查询一下,发现这MediaWiki的确是管理功能各方面多有不足。
希望设置MediaWiki的用户权限,对匿名用户的设置可以从修改LocalSettings.php入手,下载该文件,然后按照希望设置的用户权限,在文件中插入对应的设置语句,存储后再上传回去就可以了。通过下面介绍的设置方法,可以阻止匿名用户注册,又或者阻止他们编辑,要求注册后才能够编辑,还可以设定注册前匿名用户可以查看那些页面。而在设置新用户的注册之后,管理人员仍可通过特殊页面手动为其他人创建用户。而用户的权限,则可以通过特殊页面内的User rights management进行管理。
LocalSettings.php用户权选设置相关选项
阻止新用户注册
1.5.x
$wgGroupPermissions['*' ]['createaccount'] = false;
注意: 阻止新用户注册,此时管理员可以到特殊页面上的用户登录页面(Special:UserLogin)里,输入希望为其建立帐户的某人的用户名与电子邮件地址,然后点击通过eMail(by email)按钮递交,系统将创建帐号并将随机生成的密码发送到指定email里。
设置匿名用户权限
1.5.x
$wgGroupPermissions['*' ]['createaccount'] = false;
$wgGroupPermissions['*' ]['read'] = true;
$wgGroupPermissions['*' ]['edit'] = false;
设置匿名用户可读内容
1.5.x
$wgWhitelistRead = array( "Main Page", "Special:Userlogin" );
$wgGroupPermissions['*' ]['read'] = false;
注意:具体需要对应自己的站点链接,而对于多字节语言的MediaWiki,例如中文首页链接index.php?title=%E9%A6%96%E9%A1%B5,这首页中文字符PHP可能无法正确解码。需要利用urldecode()函数转换一下,写为:
$wgWhitelistRead = array( urldecode("%E9%A6%96%E9%A1%B5") ;