0
votes

Is there any way to programmatically update group of specific user (in contrast to manual proceeding via Special:UserRights)?

Initial situation: 1. The requirement to use my MediaWiki is, that particular mediawiki user is in one of two Active Directory groups (Domain-MediaWiki_ReadOnly resp. Domain-MediaWiki_ReadWrite).

  1. MediaWiki user authenticates against Active Directory successfully - works topically.

  2. Getting programmatically the AD group, where User is in (via LdapAutoAuthentication.php) - works topically.

  3. Creating two new user groups in MediaWiki by manipulating LocalSettings.php - works topically:

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

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

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

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

  4. But now, how to programmatically map user, which is in AD group

    • 'Domain-MediaWiki_ReadOnly' to MediaWiki group 'ReadOnly'
    • 'Domain-MediaWiki_ReadWrite' to MediaWiki group 'ReadWrite'

    via bypassing 'Special:UserRights' (to add specific user to relevant MediaWiki group manually) ?

Does anyone of you guys have any idea(s)?

1

1 Answers

0
votes

I'm having problems parsing your questions, but I'll try. * If members of group A need to be the same as members of the group B, it probably means that you're doing something wrong: just assign permissions of group B to the group A. * If group A is external to MediaWiki, you can't get MediaWiki to do something about it.

Assuming your question makes sense, the solution is $wgAutopromote. https://www.mediawiki.org/wiki/Manual:$wgAutopromote So, for instance,

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