[Dolibarr] Syncyunohost module échoue à la création d'utilisateur

Bonjour,

Syncyunohost module permet (normalement) de synchroniser des adhérents dans Dolibarr avec des utilisateurs dans ynh.

Quand on crée un adhérent dans Dolibarr, ça crée un utilisateur dans ynh.

Ca fonctionnait très bien jusqu’à récemment.

Ca se passe par là pour le code : dolibarr_ynh/sources/extra_files/app/syncyunohost/core/triggers/interface_99_modSyncYunoHost_SyncYunoHostTriggers.class.php at c9d0f709c839fd14549dfd4d12d79167f81a0583 · YunoHost-Apps/dolibarr_ynh · GitHub

Par exemple, si je crée un membre qui s’appelle “Test Restest” ayant pour nom d’utilisateur “testretest” et mot de passe “azerty12345” et pour email “testretest@pashabicoop.fr” dans un dolibarr hébergé sur un yunohost ayant pour nom de domain zyuno.local, ça lance la commande suivante :

/usr/local/bin/syncyunohost.sh “create” “testretest” “azerty12345” “Test Restest” “testretest@pashabicoop.fr” “zyuno.local”

et le fichier syncyunohost.sh va enclenché la fonction suivante dolibarr_ynh/conf/syncyunohost.sh at c9d0f709c839fd14549dfd4d12d79167f81a0583 · YunoHost-Apps/dolibarr_ynh · GitHub

et donc les commandes bash suivantes devraient être lancées :

sudo DISABLE_HOOK=true yunohost user create "testretest" -p "azerty12345" -F "Test Restest" -d "zyuno.local"

sudo yunohost user update "testretest" --add-mailforward "testretest@pashabicoop.fr"

et c’est exactement ce qui se passe (et tout fonctionne bien) si je lance en ligne de commande, dans le shell de l’app dolibarr en tant qu’utilisateur dolibarr la commande suivante :

/usr/local/bin/syncyunohost.sh “create” “testretest” “azerty12345” “Test Restest” “testretest@pashabicoop.fr” “zyuno.local”

mais si la commande est lancé par le script php interface_99_modSyncYunoHost_SyncYunoHostTriggers.class.php du module, alors, seule la première commande est lancée

sudo DISABLE_HOOK=true yunohost user create "testretest" -p "azerty12345" -F "Test Restest" -d "zyuno.local"

et ça se termine en erreur. L’utilisateur est bien créé même si ça se termine en erreur (voir quelle erreur en dessous)

La seconde commande

sudo yunohost user update "testretest" --add-mailforward "testretest@pashabicoop.fr"

n’est pas lancée et l’utilisateur ne se voit pas attribuer son email de transfert (ce qui est embêtant et annule l’intérêt d’automatisation du module).

et l’erreur indiquée est encore plus étrange :

[Errno 30] Read-only file system: '/etc/yunohost/apps/nextcloud/settings.yml'

Pour quelle raison ynh_create_user() fonction échoue entre

sudo DISABLE_HOOK=true yunohost user create "$USERNAME" \
        -p "$password" \
        -F "$fullname" \
        -d "$PARAM4"

et

# Optional: add mail forward
    if [[ -n "$forward_email" ]]; then
        sudo yunohost user update "$USERNAME" --add-mailforward "$forward_email"
    fi

quand la fonction est lancée depuis PHP mais pas quand elle est lancée en ligne de commande (par le même utilisateur dolibarr)???

Et pour rappel, ça fonctionnait très bien il y a encore quelques semaines, début mai avec certitude!