Есть ли способ программно обновить группу конкретного пользователя (в отличие от ручной обработки через Special: UserRights)?
Исходная ситуация:
1. Требование использовать мой MediaWiki состоит в том, что конкретный пользователь MediaWiki находится в одной из двух групп Active Directory (Domain-MediaWiki_ReadOnly или соответственно Domain-MediaWiki_ReadWrite).
Пользователь MediaWiki успешно проходит аутентификацию в Active Directory — работает тематически.
Получение программно группы AD, в которой находится пользователь (через LdapAutoAuthentication.php) — работает тематически.
Создание двух новых групп пользователей в MediaWiki путем манипулирования LocalSettings.php — работает тематически:
$ wgGroupPermissions [‘ReadOnly’] [‘read’] = true;
$ wgGroupPermissions [‘ReadOnly’] [‘edit’] = false;
$ wgGroupPermissions [‘ReadWrite’] [‘read’] = true;
$ wgGroupPermissions [‘ReadWrite’] [‘edit’] = true;
Но теперь, как программно отобразить пользователя, который находится в группе AD
через обход «Special: UserRights» (чтобы вручную добавить определенного пользователя в соответствующую группу MediaWiki)?
У кого-нибудь из вас есть какие-нибудь идеи?
У меня проблемы с анализом ваших вопросов, но я постараюсь.
* Если члены группы 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' ),
),
);
Других решений пока нет …