Hello MediaWiki Developers,

I'm troubleshooting and have a question regarding to the arrayMerge
function in SiteConfiguration.php.

>From my understanding, this function should merge two arrays by
overwriting the values of $array1 with those of $array2 where keys
match. However, it appears that it only overwrites a value if the
existing value in $array1 is false.

This behavior is problematic when attempting to set configuration
options, particularly $wgGroupPermissions, to false. For example, the
default value of $wgGroupPermissions['user'] includes [ 'edit' =>
true, 'read' => true ]. I am unable to set edit to false by merging it
with [ 'edit' => false ] using the current arrayMerge logic.

Here is a configuration snippet from my LocalSettings.php:

$wgConf->settings = [
    '+wgGroupPermissions' => [
        'default' => [
            '*' => [
                'autocreateaccount' => true,
                'createaccount' => false,
                'edit' => false,
                'read' => false,
            ],
            'user' => [
                'edit' => false,
            ],
        ],
        '+internalwiki' => [
            'user' => [ 'edit' => true ],
        ],
        '+externalwiki' => [
            '*' => [ 'read' => true ],
            'user' => [ 'edit' => true ],
        ],
    ],
];

This can't set, for example, $wgGroupPermissions['*']['read'] to false
for internalwiki. I am looking for advice on how to correctly set some
of these permissions to false as intended.

Thank you for your assistance.
_______________________________________________
Wikitech-l mailing list -- wikitech-l@lists.wikimedia.org
To unsubscribe send an email to wikitech-l-le...@lists.wikimedia.org
https://lists.wikimedia.org/postorius/lists/wikitech-l.lists.wikimedia.org/

Reply via email to