diff --git a/nextcloud/sync_admin_rights.sh b/nextcloud/sync_admin_rights.sh new file mode 100644 index 0000000..4575912 --- /dev/null +++ b/nextcloud/sync_admin_rights.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +# Récupérer la liste des administrateurs actuels +current_admins=$(docker exec -u 33 neah-nextcloud php occ user:list --output=json | jq -r '.[] | select(.isadmin == true) | .uid') + +# Pour chaque admin actuel +for admin in $current_admins; do + # Vérifier si l'utilisateur est toujours dans le groupe admin + is_in_admin_group=$(docker exec -u 33 neah-nextcloud php occ group:list --output=json | jq -r --arg user "$admin" '.admin.users | contains([$user])') + + if [ "$is_in_admin_group" = "false" ]; then + # Retirer les droits admin si l'utilisateur n'est plus dans le groupe + docker exec -u 33 neah-nextcloud php occ user:info "$admin" --output=json | jq -r '.groups[]' + docker exec -u 33 neah-nextcloud php occ group:removeuser admin "$admin" + fi +done + +# Récupérer la liste des membres du groupe admin +admin_group_members=$(docker exec -u 33 neah-nextcloud php occ group:list --output=json | jq -r '.admin.users[]') + +# Pour chaque membre du groupe admin +for member in $admin_group_members; do + # Vérifier si l'utilisateur a les droits admin + is_admin=$(docker exec -u 33 neah-nextcloud php occ user:list --output=json | jq -r --arg user "$member" '.[$user].isadmin') + + if [ "$is_admin" = "false" ]; then + # Ajouter les droits admin + docker exec -u 33 neah-nextcloud php occ group:adduser admin "$member" + fi +done \ No newline at end of file