From 387a8086cffb58eb288fbe42ccac63b55ed80434 Mon Sep 17 00:00:00 2001
From: Guillaume Damiens <guillaume.damiens@etu.utc.fr>
Date: Tue, 30 Apr 2019 15:18:28 +0200
Subject: [PATCH] =?UTF-8?q?Changement=20de=20la=20m=C3=A9thode=20:=20passa?=
 =?UTF-8?q?ge=20par=20la=20liste=20des=20utilisateurs=20pour=20prendre=20e?=
 =?UTF-8?q?n=20compte=20boards=20priv=C3=A9s?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 pica-wekan/policy.sh | 57 ++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 52 insertions(+), 5 deletions(-)

diff --git a/pica-wekan/policy.sh b/pica-wekan/policy.sh
index 1531713c..dbf33ae8 100755
--- a/pica-wekan/policy.sh
+++ b/pica-wekan/policy.sh
@@ -3,8 +3,8 @@
 . ids.sh # contient $username et $password pour authentification
 
 # Paramètres
-boardExpirationDurationYears=10 # années
-boardExpirationDurationMonths= # mois
+boardExpirationDurationYears=0 # années
+boardExpirationDurationMonths=12 # mois
 boardExpirationDurationDays=0 # jours
 # Deadline = somme des durées du dessus
 deadlineTimeStamp=$(date -d "-"$boardExpirationDurationYears"years-"$boardExpirationDurationMonths"months-"$boardExpirationDurationDays"days" +%s)
@@ -15,6 +15,53 @@ token=$(echo $queryPica | jq -r .token)
 tokenExpirationDate=$(echo $queryPica | jq -r .tokenExpires)
 # condition à rajouter sur la date d'expiration du token : arrêt si trop ancien
 
+# Récupérer les utilisateurs
+users=$(curl -s -X GET https://wekan.test.picasoft.net/api/users \
+  -H 'Accept: application/json' \
+  -H 'Authorization: Bearer '"$token"'')
+usersIds=$(echo $users | jq -r '.[]._id')
+usersUsernames=$(echo $users | jq -r '.[].username')
+
+# Boucler sur les utilisateurs
+for usersId in $usersIds
+do
+  # récupérer les boards de chaque utilisateur
+  userBoards=$(curl -s -X GET https://wekan.test.picasoft.net/api/users/$usersId/boards \
+  -H 'Accept: application/json' \
+  -H 'Authorization: Bearer '"$token"'' | jq -r '.[]._id')
+
+  #boucler sur chaque board de l'utilisateur
+  for userBoard in $userBoards
+  do
+    # echo "Utilisateur "$usersId" fait partie de "$userBoard
+
+    board=$(curl -s -X GET https://wekan.test.picasoft.net/api/boards/$userBoard \
+    -H 'Accept: application/json' \
+    -H 'Authorization: Bearer '"$token"'')
+    boardTitle=$(echo $board | jq -r '.title')
+
+    lastModificationDate=$(echo $board | jq -r '.modifiedAt')
+
+    if [ $lastModificationDate = null ]
+    then
+      lastModificationDate=$(echo $board | jq -r '.createdAt')
+    fi
+
+    if [ $(($deadlineTimeStamp-$(date -d $lastModificationDate +%s))) -gt 0 ]
+    then
+      echo "Suppresion du board "$boardTitle" (_id "$userBoard", modifié le "$lastModificationDate")"
+
+      # supprimer le board si trop ancien
+      # curl -X DELETE https://wekan.test.picasoft.net/api/boards/$idBoard \
+      # -H 'Authorization: Bearer '"$token"''
+    fi
+  done
+done
+
+exit 1
+
+######## FONCTIONNE MAIS QU'AVEC LES BOARDS PUBLICS #######
+
 # récupération des ids de tous les boards publics
 idBoards=$(curl -s -X GET https://wekan.test.picasoft.net/api/boards \
   -H 'Accept: application/json' \
@@ -37,9 +84,9 @@ do
   if [ $(($deadlineTimeStamp-$(date -d $lastModificationDate +%s))) -gt 0 ]
   then
     # echo "deadline plus récente que date de modif : board "$idBoard" à supprimer"
-    echo "plus récent : on supprime" $idBoard
+    echo "plus récent : il faut supprimer " $idBoard
 
-    curl -X DELETE https://wekan.test.picasoft.net/api/boards/$idBoard \
-    -H 'Authorization: Bearer '"$token"''
+    # curl -X DELETE https://wekan.test.picasoft.net/api/boards/$idBoard \
+    # -H 'Authorization: Bearer '"$token"''
   fi
 done
-- 
GitLab