作者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