MediaWiki:仅创建者允许或经批准允许的页面编辑

MediaWiki:仅创建者允许或经批准允许的页面编辑,mediawiki,edit,rights,Mediawiki,Edit,Rights,我正试图限制在作为公司内部项目创建的Wiki(使用MediaWiki)上进行编辑 我们希望能够让页面创建者指定以下两个选项中的任何一个或任何一个: 除此页面的创建者外,任何人都不能编辑此页面的内容 任何人都可以编辑此页面的内容,但在更改可见之前,必须获得页面创建者的批准(无论是通过邮件、直接在wiki上还是其他方式,都无所谓) 如果创建者没有指定这两个选项中的任何一个,任何人都可以编辑页面,并且更改立即可见(默认行为) 我一直在浏览网络,但我没有找到一个现成的解决方案。由于LocalSett

我正试图限制在作为公司内部项目创建的Wiki(使用MediaWiki)上进行编辑

我们希望能够让页面创建者指定以下两个选项中的任何一个或任何一个:

  • 除此页面的创建者外,任何人都不能编辑此页面的内容
  • 任何人都可以编辑此页面的内容,但在更改可见之前,必须获得页面创建者的批准(无论是通过邮件、直接在wiki上还是其他方式,都无所谓)
如果创建者没有指定这两个选项中的任何一个,任何人都可以编辑页面,并且更改立即可见(默认行为)

我一直在浏览网络,但我没有找到一个现成的解决方案。由于LocalSettings文件的版本,我们成功地制作了一些很棒的自定义内容,但不是这个


这项功能有解决方案吗?

我不知道有什么扩展可以让这项功能变得简单


我认为您可以做的是使用一个像or这样的扩展,使其使用用户名,而不是使用组作为批准状态的决定者。这可能不太难。这有意义吗?

我和你有同样的问题,现在我解决了,以下是解决方案:

我用它来保护文章,但它没有满足我的需要,它允许用户更改当前批准的文章版本,因此更改立即反映在主页上,所以我对它进行了一些修改,基本上你只需要一次更改

转到ApprovedRevs/ApprovedRevs.hooks.php

并找到以下代码:

static public function setLatestAsApproved( &$article , &$user, $text,
        $summary, $flags, $unused1, $unused2, &$flags, $revision,
        &$status, $baseRevId ) {
return false;
这是添加以下代码后的函数声明:

static public function setLatestAsApproved( &$article , &$user, $text,
        $summary, $flags, $unused1, $unused2, &$flags, $revision,
        &$status, $baseRevId ) {
return false;

它将按照您希望的方式工作,即(您所做的更改在您批准之前不会得到反映)

(将此添加为注释,因为这不是对您问题的直接回答)您知道这与wiki的全部目的相反,即促进低门槛、精简的编辑?考虑到这一点,我们用另一种方式来解决这个问题:1。在某些页面上方添加标签(使用模板),告诉用户是谁在调整标签,以及编辑页面的说明(例如,拼写错误可以修复)和2。鼓励作者观看页面并在更改时接收电子邮件。还要问问你自己——当作者不在的时候会发生什么?我也有同样的问题!