|
1 mediawiki实现访问控制
mediawiki采用扩展插件accesscontrol后,可以实现一定的访问控制。原accesscontrol-0.8版本可以实现:按用户组进行控制写权限控制。采用此插件的好处是:可以由wiki用户自己定义自己的网页的编辑权限,而无须管理员来定义,管理方便、维护简单。
但我发现此插件只实现了编辑权限的控制,没有对读权限进行控制,不太符合公司内部的要求。于是我在此基础上做了一些小的改动扩展,使得他能支持读权限控制。改动后的源代码:http://www.scmbbs.com/download/accesscontrol-0.8.rar (其中我只改动了accesscontrol.php文件)
注:accesscontrol-1.0版本看起来更为灵活,但我没用成功,所以还是用了0.8版本。
原插件位置:http://www.mediawiki.org/wiki/Extension:AccessControl (1.0版本)
http://www.mediawiki.org/wiki/Ex ... ased_Access_Control (0.8版本)
配置方法参阅其原著。
我扩展后的用法:
目前访问控制可以实现:特定人可编辑、特定人可读(ro)、其他人只读/其他人不能读 三种权限控制。
如果您希望某一页面只有本组team1成员可以编辑,某组人team2只读,其他人不能读,则遵循如下3个步骤:
1、假设您的组名字叫team1,则创建一个wiki页面为:Usergroup:team1 (可通过在地址栏index.php/后面直接写Usergroup:team1来创建),Usergroup为关键字。
在此页面中列出团队成员用户名(邮箱前半部分,即域用户名)
*all()
*xuejiang.li
*janny.bai
*wb_temp
注意:每个用户用*号隔开。其中all()的意思是其他所有人不可读。如果不加上all(),则其他所有人只读。
2、同样创建一个wiki页面为:Usergroup:team2,在此页面中列出允许只读访问的用户名
*shanshan
*xiaobai
*laoda
3、在需要权限控制的wiki页面头部增加如下代码:
<accesscontrol>team1,,team2(ro)</accesscontrol>
此代码用标签对<accesscontrol>来告诉wiki,此页面受保护,只有team1可以编辑,team2只读。team2后面加(ro)的意思是标明team2权限为read only。需要注意到:当定义2个如上Usergroup时,用两个逗号(,,)来分隔。如果要更改team2为可写,则将team2后面的(ro)去掉,写成<accesscontrol>team1,,team2</accesscontrol>。 保存页面,此时页面头部会提示此页面正受到保护。 |
|