看板 Wikipedia 關於我們 聯絡資訊
經過幾天的搜尋和嘗試之後,終於設定成功了,以下是我的設定方法。 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)
roadeat:我記得mediawiki官網有現成的套件可以下載,裡面蠻多套件 06/10 02:22
roadeat:只是不一定完全符合,可下載後再行修改 06/10 02:22