Amélioration du script de synchronisation des droits administrateurs : ajout de la journalisation, activation du mode debug, et vérification des utilisateurs dans le groupe admin.
This commit is contained in:
parent
0e299453aa
commit
f0ffd6d709
@ -1,30 +1,58 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Activer le mode debug et sortie en cas d'erreur
|
||||||
|
set -e
|
||||||
|
set -u
|
||||||
|
|
||||||
|
# Configuration
|
||||||
|
CONTAINER="neah-nextcloud"
|
||||||
|
LOG_FILE="/var/log/nextcloud/admin_sync.log"
|
||||||
|
|
||||||
|
log() {
|
||||||
|
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOG_FILE"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Créer le répertoire de logs si nécessaire
|
||||||
|
mkdir -p "$(dirname "$LOG_FILE")"
|
||||||
|
|
||||||
|
log "Début de la synchronisation des droits administrateurs"
|
||||||
|
|
||||||
# Récupérer la liste des administrateurs actuels
|
# 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')
|
log "Récupération des administrateurs actuels..."
|
||||||
|
current_admins=$(docker exec -u 33 $CONTAINER php occ user:list --output=json | jq -r 'to_entries[] | select(.value.isEnabled == true and .value.isAdmin == true) | .key')
|
||||||
|
|
||||||
# Pour chaque admin actuel
|
# Pour chaque admin actuel
|
||||||
for admin in $current_admins; do
|
for admin in $current_admins; do
|
||||||
# Vérifier si l'utilisateur est toujours dans le groupe admin
|
log "Vérification des droits pour l'administrateur: $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])')
|
|
||||||
|
# Vérifier si l'utilisateur est dans le groupe admin
|
||||||
|
is_in_admin_group=$(docker exec -u 33 $CONTAINER php occ group:list --output=json | \
|
||||||
|
jq -r --arg group "admin" --arg user "$admin" '.[$group].users | contains([$user]) // false')
|
||||||
|
|
||||||
if [ "$is_in_admin_group" = "false" ]; then
|
if [ "$is_in_admin_group" = "false" ]; then
|
||||||
# Retirer les droits admin si l'utilisateur n'est plus dans le groupe
|
log "Retrait des droits admin pour: $admin"
|
||||||
docker exec -u 33 neah-nextcloud php occ user:info "$admin" --output=json | jq -r '.groups[]'
|
docker exec -u 33 $CONTAINER php occ user:info "$admin" --output=json
|
||||||
docker exec -u 33 neah-nextcloud php occ group:removeuser admin "$admin"
|
docker exec -u 33 $CONTAINER php occ group:removeuser admin "$admin"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# Récupérer la liste des membres du groupe admin
|
# 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[]')
|
log "Récupération des membres du groupe admin..."
|
||||||
|
admin_group_members=$(docker exec -u 33 $CONTAINER php occ group:list --output=json | \
|
||||||
|
jq -r '.admin.users[]? // empty')
|
||||||
|
|
||||||
# Pour chaque membre du groupe admin
|
# Pour chaque membre du groupe admin
|
||||||
for member in $admin_group_members; do
|
for member in $admin_group_members; do
|
||||||
|
log "Vérification des droits admin pour le membre: $member"
|
||||||
|
|
||||||
# Vérifier si l'utilisateur a les droits admin
|
# 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')
|
is_admin=$(docker exec -u 33 $CONTAINER php occ user:list --output=json | \
|
||||||
|
jq -r --arg user "$member" '.[$user].isAdmin // false')
|
||||||
|
|
||||||
if [ "$is_admin" = "false" ]; then
|
if [ "$is_admin" = "false" ]; then
|
||||||
# Ajouter les droits admin
|
log "Ajout des droits admin pour: $member"
|
||||||
docker exec -u 33 neah-nextcloud php occ group:adduser admin "$member"
|
docker exec -u 33 $CONTAINER php occ group:adduser admin "$member"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
log "Fin de la synchronisation des droits administrateurs"
|
||||||
Loading…
x
Reference in New Issue
Block a user