是否可以保護特定類別,例如未經特定許可,不能將類別'category1'分配給文章?保護MediaWiki中的類別分配
1
A
回答
0
這可能是一個有點潔癖的你想要什麼,但我認爲你可以使用SimpleSecurity這一點,但也可能確保人民未經許可不得視圖類別無論是。
0
不太可能,因爲添加一個類別與添加一些文本一樣簡單,這不是一個可以通過默認安裝或我可以找到的擴展來限制的操作。
我想如果您沒有權限添加該類別,則可以編寫和擴展程序來刪除文本。
1
我相信你可以檢查該類別是否被添加到ArticleSave
鉤子的頁面中,並且如果用戶沒有所需的權限則發出錯誤。
編輯:沿着這些線路東西(快速&髒):
$wgForbiddenCats = array('Forbidden' => 'sysop');
$wgHooks['ArticleSave'][] = 'checkForbiddenCats';
function checkForbiddenCats($article, $user, $text, $summary, $minor,
$_, $_, $flags, $status)
{
global $wgForbiddenCats, $wgParser;
// Firstly, get categories in the new text
$parser_output = $wgParser->parse($text, $article->getTitle(),
$article->getParserOptions());
$new_cats = array_keys($parser_output->getCategories());
// For now, the only added categories are the ones in the submitted text
$added_cats = $new_cats;
// If the page already exists, it can have some categories already
if(!($flags & EDIT_NEW)) {
$dbr = wfGetDB(DB_SLAVE);
$query_result = $dbr->select(
'categorylinks',
'cl_to',
array('cl_from' => $article->getID()));
$old_cats = array();
while($row = $query_result->fetchRow())
$old_cats[] = $row[0];
$dbr->freeResult($query_result);
$added_cats = array_diff($new_cats, $old_cats);
}
$user_groups = $user->getGroups();
foreach($wgForbiddenCats as $category => $group) {
if(array_search($category, $added_cats) !== false &&
array_search($group, $user_groups) === false)
{
$status->fatal('forbidden-cat');
return false;
}
}
return true;
}
相關問題
- 1. 分配與保護
- 2. MediaWiki中的受保護頁面
- 3. Transclude MediaWiki中的類別
- 4. MediaWiki:搜索類別中的子分類(不區分大小寫!)
- 5. React中的類別分配
- 6. 分配類別
- 7. 在派生類中分配受保護的屬性
- 8. 如何保護部分Mediawiki文章不被編輯?
- 9. MediaWiki API:獲取類別樹
- 10. 類別成員API - Mediawiki
- 11. 分配函數的返回值到類保護變量
- 12. 保護裝配?
- 13. systemOrSignature保護級別
- 14. .NET中受保護的類
- 15. Laravel和質量分配保護
- 16. 保護高分
- 17. 將行分配給Openrefine中的類別
- 18. Mediawiki的下拉值:從類別+無
- 19. 一個類中的struct字段的保護級別
- 20. Gitlab受保護的分支不保護ssh上的分支
- 21. 腳本中的變量保護級別
- 22. Android Studio中的signatureOrSystem保護級別
- 23. 無法分配「[類別]」
- 24. AtTask分配類別任務
- 25. 無法批量分配受保護的屬性:配置文件,
- 26. 在JMX級別保護Geode
- 27. Rails無法爲ID集中分配受保護的屬性created_at
- 28. 在導軌4中質量分配受保護的屬性
- 29. Rails:保護模型(批量分配)中的額外領域?
- 30. 在Rails中分配受保護的屬性
SimpleSecurity將允許你做起來很只有某些人可以編輯某些類別的,但我不認爲這是什麼,他們想做。 – 2011-01-14 16:02:45