MediaWiki以编程方式更新用户组

时间:2014-11-28 09:38:58

标签: php mediawiki

有没有办法以编程方式更新特定用户组(与通过Special:UserRights手动进行对比)?

初步情况: 1.使用我的MediaWiki的要求是,特定的mediawiki用户位于两个Active Directory组之一(Domain-MediaWiki_ReadOnly resp.Domain-MediaWiki_ReadWrite)。

  1. MediaWiki用户成功对Active Directory进行身份验证 - 主题工作。

  2. 以编程方式获取用户所在的AD组(通过LdapAutoAuthentication.php) - 以局部方式工作。

  3. 通过操作LocalSettings.php在MediaWiki中创建两个新用户组 - 以局部方式工作:

    $ wgGroupPermissions [' ReadOnly'] [' read'] = true;

    $ wgGroupPermissions [' ReadOnly'] [' edit'] = false;

    $ wgGroupPermissions [' ReadWrite'] [' read'] = true;

    $ wgGroupPermissions [' ReadWrite'] [' edit'] = true;

  4. 但是现在,如何以编程方式映射用户,即AD组

    • '域-MediaWiki_ReadOnly'到MediaWiki group' ReadOnly'
    • '域-MediaWiki_ReadWrite'到MediaWiki group' ReadWrite'

    绕过' Special:UserRights' (手动将特定用户添加到相关的MediaWiki组)?

  5. 你们其中有人有任何想法吗?

1 个答案:

答案 0 :(得分:0)

我在解析您的问题时遇到了问题,但我会尝试。 *如果A组成员需要与B组成员相同,则可能意味着您做错了:只需将B组的权限分配给A组。 *如果A组在MediaWiki外部,则无法让MediaWiki对其采取行动。

假设您的问题有意义,解决方案是$ wgAutopromote。 https://www.mediawiki.org/wiki/Manual:$ wgAutopromote 所以,例如,

$wgAutopromote = array(
    'ReadOnly' => array(
    '&',
    array( APCOND_AGE, 60 ),
    array( APCOND_INGROUPS, 'Domain-MediaWiki_ReadOnly' ),
  ),
);