--- # LE GROUPE D'HABILITATION DEVIENT ADMINISTRATEUR DE NEXTCLOUD — sorti de `oidc.yml` le # 2026-10-01 pour etre joue AUSSI apres la remise d'un Nextcloud restaure (`main.yml`). # # Dans une reconstruction, l'etape tournait AVANT la remise : sur la base neuve, ou le groupe # n'existe pas encore, elle passait sans rien faire — puis la base d'avant revenait avec son # etat d'avant. `sysadmin` etait administrateur chez Technolibre (verse par un deploiement # anterieur, garde par la sauvegarde) et ne l'etait pas chez Chezlepro (jamais verse) : # chaque reconstruction le ramenait tel quel. # # Les groupes projetes depuis LDAP arrivent dans Nextcloud, mais y etre membre # ne donne aucun pouvoir : l'administration est un GROUPE NEXTCLOUD nomme # `admin`. On y verse le groupe d'habilitation, une fois qu'il existe. # # Sans cela, `meta/acces.yml` restait `porte_par: aucun` et l'administration # passait par le compte local de secours — ce qui contredit « une identite, un # mot de passe » (2026-08-07). - name: Verser le groupe d'administration dans le groupe `admin` de Nextcloud ansible.builtin.shell: executable: /bin/bash cmd: | set -eo pipefail OCC="php {{ serveur_nextcloud_racine }}/occ" G="{{ serveur_nextcloud_oidc_groupe_admin }}" # Le groupe n'existe qu'apres la premiere connexion d'un membre : son # absence n'est donc PAS une erreur au premier deploiement. if ! $OCC group:list --output=json | grep -q "\"$G\""; then echo "SETOPS_OK (groupe '$G' pas encore provisionne — a la premiere connexion)" exit 0 fi CHANGED=0 for U in $($OCC group:list --output=json | python3 -c " import json,sys print(' '.join((json.load(sys.stdin).get('$G') or [])))"); do if ! $OCC group:list --output=json | python3 -c " import json,sys sys.exit(0 if '$U' in (json.load(sys.stdin).get('admin') or []) else 1)"; then $OCC group:adduser admin "$U" >/dev/null && CHANGED=1 fi done [ "$CHANGED" = 1 ] && echo SETOPS_CHANGED || echo SETOPS_OK register: serveur_nextcloud_grp_admin changed_when: "'SETOPS_CHANGED' in serveur_nextcloud_grp_admin.stdout" when: serveur_nextcloud_oidc_groupe_admin | length > 0