作者yqln95 (银莲花)
看板Wikipedia
标题Re: [问题] mediawiki 群组权限管理设定问题
时间Mon Feb 28 17:08:03 2011
经过几天的搜寻和尝试之後,终於设定成功了,以下是我的设定方法。
mediawiki内建的功能似乎很难设定出较有弹性的权限设定,所以之後转而使用
扩充套件,而我选用的是NamespacePermissions(
http://goo.gl/ITbAn)。
LocalSettings.php中最重要的部份如下:
//建立两个自订的namespace
define("NS_project1", 4000);
$wgExtraNamespaces[NS_project1] = "project1";
define("NS_project2", 4002);
$wgExtraNamespaces[NS_project2] = "project2";
//系统管理者对在两个namespace下的内容都有权限
$wgGroupPermissions[ 'sysop' ][ 'ns4000_read' ] = true;
$wgGroupPermissions[ 'sysop' ][ 'ns4000_edit' ] = true;
$wgGroupPermissions[ 'sysop' ][ 'ns4000_create' ] = true;
$wgGroupPermissions[ 'sysop' ][ 'ns4000_move' ] = true;
$wgGroupPermissions[ 'sysop' ][ 'ns4002_read' ] = true;
$wgGroupPermissions[ 'sysop' ][ 'ns4002_edit' ] = true;
$wgGroupPermissions[ 'sysop' ][ 'ns4002_create' ] = true;
$wgGroupPermissions[ 'sysop' ][ 'ns4002_move' ] = true;
//group1只有在project1中有权限
$wgGroupPermissions[ 'group1' ][ 'ns4000_read' ] = true;
$wgGroupPermissions[ 'group1' ][ 'ns4000_edit' ] = true;
$wgGroupPermissions[ 'group1' ][ 'ns4000_create' ] = true;
$wgGroupPermissions[ 'group1' ][ 'ns4000_move' ] = true;
//group2只有在project2中有权限
$wgGroupPermissions[ 'group2' ][ 'ns4002_read' ] = true;
$wgGroupPermissions[ 'group2' ][ 'ns4002_edit' ] = true;
$wgGroupPermissions[ 'group2' ][ 'ns4002_create' ] = true;
$wgGroupPermissions[ 'group2' ][ 'ns4002_move' ] = true;
//引入NamespacePermissions.php套件
require_once( "$PATH-TO-MEDIAWIKI-EXTENSION/
NamespacePermissions.php" );
在首页中加入以下内容:
'''[[project1:projects - 1 | projects - 1]]'''
'''[[project2:projects - 2 | projects - 2]]'''
最後感谢planetoid2版友的帮助。
※ 引述《planetoid2 (planetoid)》之铭言:
: ※ 引述《yqln95 (银莲花)》之铭言:
: : 环境
: : MediaWiki 1.15
: : ubuntu 10.04
: : 目的:
: : 建立多个主题,不同的主题只有专属群组内的人才有权限观看和编辑内部,其他群组的
: : 人则没有权限看到内容。
: : 问题描述:
: : 1.
: : a. 先创造群组"group1",使用者"user1",并把user1加入group1,确认user1只属於
: : group1(这点从资料库中确认)。
: : b. 在LocalSettings.php中写入以下资料
: : $wgGroupPermissions['group1']['read'] = false;
: : $wgGroupPermissions['group1']['*'] = false;
: : $wgGroupPermissions['*']['read'] = false;
: : $wgGroupPermissions['*']['edit'] = false;
: : $wgGroupPermissions['sysop']['read'] = false;
: : $wgGroupPermissions['sysop']['edit'] = false;
: : 此时不管使用user1或是管理者帐号登入都发现所有的文章内容都是可以看的,也可以
: : 编辑页面。但这样子的设定应该要让在group1内的所有人都没办法观看任何的资料
: : 不是吗?
: : c. 但若再加一行
: : $wgGroupPermissions['user']['read'] = false;
: : 那user1便不能读取任何页面。
: : 请问在b中的设定是有什麽问题导致user1能读取页面呢?
: 看官方文件http://www.mediawiki.org/wiki/Manual:User_rights
: 需要先将所有权限限制,才能开放小部份人的权限
: 所以需要$wgGroupPermissions['user']['read'] = false;
: 代表全部登入的使用者(也包含了group1),无法观看全部文章内容
: : 2.
: : 使用自订的namespace来做分类管理
: : a. 加入以下设定
: : $wgExtranamespaces[2000]="ns1";
: : b. 在首页中加入
: : '''[[ns1:project1]]'''
: : c. 加入设定
: : $wgNamespaceProtection[NS_ns1] = array('group2');
: : 此时发现任一个user1仍可以编辑此页面
: : 想请问各位先进,在处理MediaWiki群组权限分类管理时,是否有什麽设定方向或工具呢?
: : 先感谢各位的观看及回答。
: 理由同上一段
: 设定档可参考:
: http://wiki.planetoid.info/index.php/Setting_user_rights_in_MediaWiki
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.184.119.237
※ 编辑: yqln95 来自: 111.184.119.237 (02/28 17:11)
1F:推 roadeat:我记得mediawiki官网有现成的套件可以下载,里面蛮多套件 06/10 02:22
2F:→ roadeat:只是不一定完全符合,可下载後再行修改 06/10 02:22