Skip to content
Snippets Groups Projects
Verified Commit 8d208159 authored by Guillaume Damiens's avatar Guillaume Damiens
Browse files

Ajout README.md et améliorations des variables

parent 387a8086
No related branches found
No related tags found
1 merge request!37Tx services p19 test
# Script de suppression des boards Wekan trop anciens
## Avant le lancement
Le paquet jq permet de parser et manipuler du JSON en ligne de commande. Il est nécessaire pour filtrer les informations reçu de l'API.
```bash
sudo apt install jq
```
Le Wekan doit contenir un compte dédié pour ce script permettant d'accéder à l'API. Ce compte doit disposer des droits administrateurs du Wekan. Les identifiants doivent être présents dans un fichier séparer du script `policy.sh`.
```bash
touch ids.sh
```
## Contenu de `ids.sh`
2 variables sont nécessaires : username et password du compte dédié.
```bash
#!/bin/bash
export username="username"
export password="password"
```
## Choix de la deadline et de l'URL de l'API
Les boards n'ayant pas été modifiés depuis un certain temps sont définitivement supprimés. Cette durée est la somme de trois variables : `boardExpirationDurationYears`, `boardExpirationDurationMonths` et `boardExpirationDurationDays`. L'URL de l'application est également nécessaire.
Ces informations sont à modifier directement dans les premières lignes du script `policy.sh`.
```bash
boardExpirationDurationYears=0 # années
boardExpirationDurationMonths=12 # mois
boardExpirationDurationDays=0 # jours
url=https://wekan.test.picasoft.net
```
## Lancement du script
```bash
./policy.sh
```
......@@ -6,36 +6,33 @@
boardExpirationDurationYears=0 # années
boardExpirationDurationMonths=12 # mois
boardExpirationDurationDays=0 # jours
url=https://wekan.test.picasoft.net
# Deadline = somme des durées du dessus
deadlineTimeStamp=$(date -d "-"$boardExpirationDurationYears"years-"$boardExpirationDurationMonths"months-"$boardExpirationDurationDays"days" +%s)
queryPica=$(curl -s https://wekan.test.picasoft.net/users/login -d 'username='"$username"'&password='"$password"'')
# Récupération du token de connexion
queryPica=$(curl -s $url/users/login -d 'username='"$username"'&password='"$password"'')
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 \
# Récupération des utilisateurs
users=$(curl -s -X GET $url/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
# Boucle 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 \
# Récupération des boards de chaque utilisateur
userBoards=$(curl -s -X GET $url/api/users/$usersId/boards \
-H 'Accept: application/json' \
-H 'Authorization: Bearer '"$token"'' | jq -r '.[]._id')
#boucler sur chaque board de l'utilisateur
# Boucle 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 \
board=$(curl -s -X GET $url/api/boards/$userBoard \
-H 'Accept: application/json' \
-H 'Authorization: Bearer '"$token"'')
boardTitle=$(echo $board | jq -r '.title')
......@@ -51,9 +48,9 @@ do
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"''
# Suppression du board si trop ancien
curl -X DELETE https://wekan.test.picasoft.net/api/boards/$userBoard \
-H 'Authorization: Bearer '"$token"''
fi
done
done
......@@ -63,14 +60,14 @@ 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 \
idBoards=$(curl -s -X GET $url/api/boards \
-H 'Accept: application/json' \
-H 'Authorization: Bearer '"$token"'' | jq -r '.[]._id')
# affiche les boards publics qui n'ont pas été modifié depuis deadlineTimeStamp
for idBoard in $idBoards
do
board=$(curl -s -X GET https://wekan.test.picasoft.net/api/boards/$idBoard \
board=$(curl -s -X GET $url/api/boards/$idBoard \
-H 'Accept: application/json' \
-H 'Authorization: Bearer '"$token"'')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment