是否可以保护特定类别,例如未经特定许可,不能将类别'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. Laravel和质量分配保护
- 14. .NET中受保护的类
- 15. 将行分配给Openrefine中的类别
- 16. Mediawiki的下拉值:从类别+无
- 17. 一个类中的struct字段的保护级别
- 18. AtTask分配类别任务
- 19. 无法分配“[类别]”
- 20. 在JMX级别保护Geode
- 21. Rails:保护模型(批量分配)中的额外领域?
- 22. Rails无法为ID集中分配受保护的属性created_at
- 23. Mediawiki类别不包含页面
- 24. MediaWiki Api-在类别文本搜索
- 25. MediaWiki类别不会自动更新
- 26. 受保护与不受保护的区别
- 27. 受保护的内部和内部受保护有区别吗?
- 28. 保护一个类别避免另一个类别的错误编程?
- 29. 类别分配基于百分
- 30. Ada保护类型
SimpleSecurity将允许你做起来很只有某些人可以编辑某些类别的,但我不认为这是什么,他们想做。 – 2011-01-14 16:02:45