Compare commits

..

22 Commits

Author SHA1 Message Date
kawa 10bfe6debc Merge branch 'main' of https://git.azuze.fr/kawa/Sharepoint-Toolbox
Release zip package / release (push) Successful in 1s
2026-04-01 17:12:30 +02:00
kawa 945a4e110d Update TODO.md 2026-04-01 17:12:24 +02:00
kawa 109d0d5f1e Update TODO.md 2026-03-27 09:57:13 +01:00
kawa b4f0fecad2 Merge branch 'main' of https://git.azuze.fr/kawa/Sharepoint-Toolbox
Release zip package / release (push) Successful in 1s
2026-03-27 09:54:11 +01:00
kawa 903fa17f8a Updated workflow to include CSV examples folder 2026-03-27 09:54:01 +01:00
kawa 693f21915d Updated workflow to include CSV examples folder
Release zip package / release (push) Successful in 1s
2026-03-17 11:03:23 +01:00
kawa ab39e55194 Added mass-transfer
Release zip package / release (push) Successful in 1s
2026-03-17 10:57:11 +01:00
kawa a1edea3007 Cleanup2
Release zip package / release (push) Successful in 1s
2026-03-17 10:36:59 +01:00
kawa db0f87dc00 Cleanup 2026-03-17 10:36:41 +01:00
kawa 28e4c21e80 Added version cleanup feature 2026-03-17 10:35:39 +01:00
kawa 5c5e4b1415 Buttons size fix 2026-03-16 16:55:27 +01:00
kawa 086804edf9 Added functionnality : you can vcreate a whole folder tree by importing a CSV (see examples fodler) 2026-03-16 16:39:37 +01:00
kawa 9dc85c8057 Added sample CSV files for user/sites importation.
Release zip package / release (push) Successful in 1s
Fixed a few bugs.
2026-03-16 13:45:00 +01:00
kawa 9bcbad5d5b Ajoute de barres de recherches dans les rapports HTML de permissions et stockage
Release zip package / release (push) Successful in 1s
2026-03-16 11:44:17 +01:00
kawa 0e5f67bfa4 Added 2 new features :
Release zip package / release (push) Successful in 1s
- File/folder transfer betrween sites
- Bulk site creation
2026-03-16 11:22:01 +01:00
kawa 14bb1a7c13 Merge branch 'main' of https://git.azuze.fr/kawa/Sharepoint-Toolbox 2026-03-11 11:05:52 +01:00
kawa a256e30c59 New logo 2026-03-11 11:05:17 +01:00
kawa 2856964858 Update README.md 2026-03-10 17:11:07 +01:00
kawa 3ca58a4da0 Updated Workflow 2026-03-10 17:09:08 +01:00
kawa 2cc9d91f5a Do not upload wiki files here 2026-03-10 15:29:05 +01:00
kawa ee609cfaa4 Update
Release zip package / release (push) Successful in 0s
2026-03-10 14:59:23 +01:00
kawa 245f2d6b69 Updated workflow
Release zip package / release (push) Successful in 9s
2026-03-10 14:50:06 +01:00
13 changed files with 2341 additions and 32 deletions
+29 -20
View File
@@ -1,3 +1,4 @@
#Wkf
name: Release zip package
on:
@@ -10,28 +11,36 @@ jobs:
runs-on: native
steps:
- name: Checkout
uses: actions/checkout@v4
run: |
git clone "$GITEA_SERVER_URL/$GITEA_REPO.git" repo
cd repo && git checkout "$GITEA_REF_NAME"
env:
GITEA_SERVER_URL: ${{ gitea.server_url }}
GITEA_REPO: ${{ gitea.repository }}
GITEA_REF_NAME: ${{ gitea.ref_name }}
- name: Build zip
shell: pwsh
run: |
$version = $env:GITHUB_REF_NAME
$zip = "SharePoint_ToolBox_${version}.zip"
Compress-Archive -Force -Path Sharepoint_ToolBox.ps1, lang -DestinationPath $zip
"ZIP=$zip" >> $env:GITHUB_ENV
"VERSION=$version" >> $env:GITHUB_ENV
cd repo
VERSION="${{ gitea.ref_name }}"
ZIP="SharePoint_ToolBox_${VERSION}.zip"
zip -r "../${ZIP}" Sharepoint_ToolBox.ps1 lang/ examples/
echo "ZIP=${ZIP}" >> "$GITHUB_ENV"
echo "VERSION=${VERSION}" >> "$GITHUB_ENV"
- name: Create release and upload asset
uses: https://gitea.com/actions/gitea-release-action@latest
with:
token: ${{ secrets.RELEASE_TOKEN }}
tag_name: ${{ env.VERSION }}
release_name: "SharePoint ToolBox ${{ env.VERSION }}"
body: |
## SharePoint ToolBox ${{ env.VERSION }}
- name: Create release
run: |
RELEASE_ID=$(curl -sf -X POST \
"${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases" \
-H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \
-H "Content-Type: application/json" \
-d "{\"tag_name\":\"${{ env.VERSION }}\",\"name\":\"SharePoint ToolBox ${{ env.VERSION }}\",\"body\":\"1. Download and extract the archive\\n2. Launch Sharepoint_ToolBox.ps1 with PowerShell\\n\"}" \
| python3 -c "import sys,json; print(json.load(sys.stdin)['id'])")
echo "RELEASE_ID=${RELEASE_ID}" >> "$GITHUB_ENV"
### Installation
1. Télécharger et extraire le zip
2. Lancer `Sharepoint_ToolBox.ps1` avec PowerShell
3. Prérequis : module `PnP.PowerShell` (`Install-Module PnP.PowerShell`)
files: ${{ env.ZIP }}
- name: Upload asset
run: |
curl -sf -X POST \
"${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases/${{ env.RELEASE_ID }}/assets" \
-H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \
-F "attachment=@${{ env.ZIP }}"
+3
View File
@@ -3,3 +3,6 @@
*.json
!lang/
!lang/*.json
!wiki/
!wiki/*.html
!wiki/*.md
+1 -1
View File
@@ -1,4 +1,4 @@
![SPToolbox-logo](https://git.azuze.fr/kawa/Sharepoint-Toolbox/raw/branch/main/SPToolbox-logo-dark.png)
![SPToolbox-logo](https://git.azuze.fr/kawa/Sharepoint-Toolbox/raw/branch/main/SPToolbox-logo.png)
Application PowerShell avec interface graphique (WinForms) pour administrer, auditer et exporter des données depuis des sites SharePoint Online.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 390 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 384 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 850 KiB

+2172 -8
View File
File diff suppressed because it is too large Load Diff
+1 -2
View File
@@ -1,4 +1,3 @@
# Features à ajouter :
- Sauvegarde du contexte d'authentification en plus des profils
- Possibilité de demander la liste de site auquels un user precis a acces
- Copie de site à site
- Possibilité de demander la liste de site auquels un user precis a acces
+8
View File
@@ -0,0 +1,8 @@
Email
user1@contoso.com
user2@contoso.com
user3@contoso.com
manager1@contoso.com
designer@contoso.com
analyste@contoso.com
stagiaire@contoso.com
1 Email
2 user1@contoso.com
3 user2@contoso.com
4 user3@contoso.com
5 manager1@contoso.com
6 designer@contoso.com
7 analyste@contoso.com
8 stagiaire@contoso.com
+6
View File
@@ -0,0 +1,6 @@
Name;Alias;Type;Template;Owners;Members
Projet Alpha;projet-alpha;Team;;admin@contoso.com;user1@contoso.com, user2@contoso.com
Projet Beta;;Team;;admin@contoso.com;user3@contoso.com, user4@contoso.com
Communication RH;;Communication;;rh-admin@contoso.com;manager1@contoso.com, manager2@contoso.com
Equipe Marketing;equipe-marketing;Team;;marketing-lead@contoso.com;designer@contoso.com, redacteur@contoso.com
Portail Intranet;;Communication;;it-admin@contoso.com;
1 Name Alias Type Template Owners Members
2 Projet Alpha projet-alpha Team admin@contoso.com user1@contoso.com, user2@contoso.com
3 Projet Beta Team admin@contoso.com user3@contoso.com, user4@contoso.com
4 Communication RH Communication rh-admin@contoso.com manager1@contoso.com, manager2@contoso.com
5 Equipe Marketing equipe-marketing Team marketing-lead@contoso.com designer@contoso.com, redacteur@contoso.com
6 Portail Intranet Communication it-admin@contoso.com
+4
View File
@@ -0,0 +1,4 @@
SourceSite;SourceLibrary;DestSite;DestLibrary
https://contoso.sharepoint.com/sites/ProjectA;Shared Documents;https://contoso.sharepoint.com/sites/Archive;Shared Documents/ProjectA
https://contoso.sharepoint.com/sites/ProjectB;Shared Documents/Reports;https://contoso.sharepoint.com/sites/Archive;Shared Documents/ProjectB/Reports
https://contoso.sharepoint.com/sites/HR;Documents RH;https://contoso.sharepoint.com/sites/HR-Backup;Documents RH
1 SourceSite SourceLibrary DestSite DestLibrary
2 https://contoso.sharepoint.com/sites/ProjectA Shared Documents https://contoso.sharepoint.com/sites/Archive Shared Documents/ProjectA
3 https://contoso.sharepoint.com/sites/ProjectB Shared Documents/Reports https://contoso.sharepoint.com/sites/Archive Shared Documents/ProjectB/Reports
4 https://contoso.sharepoint.com/sites/HR Documents RH https://contoso.sharepoint.com/sites/HR-Backup Documents RH
+20
View File
@@ -0,0 +1,20 @@
Level1;Level2;Level3;Level4
Administration;;;
Administration;Comptabilite;;
Administration;Comptabilite;Factures;
Administration;Comptabilite;Bilans;
Administration;Ressources Humaines;;
Administration;Ressources Humaines;Contrats;
Administration;Ressources Humaines;Fiches de paie;
Projets;;;
Projets;Projet Alpha;;
Projets;Projet Alpha;Documents;
Projets;Projet Alpha;Livrables;
Projets;Projet Beta;;
Projets;Projet Beta;Documents;
Communication;;;
Communication;Interne;;
Communication;Interne;Notes de service;
Communication;Externe;;
Communication;Externe;Communiques de presse;
Communication;Externe;Newsletter;
1 Level1 Level2 Level3 Level4
2 Administration
3 Administration Comptabilite
4 Administration Comptabilite Factures
5 Administration Comptabilite Bilans
6 Administration Ressources Humaines
7 Administration Ressources Humaines Contrats
8 Administration Ressources Humaines Fiches de paie
9 Projets
10 Projets Projet Alpha
11 Projets Projet Alpha Documents
12 Projets Projet Alpha Livrables
13 Projets Projet Beta
14 Projets Projet Beta Documents
15 Communication
16 Communication Interne
17 Communication Interne Notes de service
18 Communication Externe
19 Communication Externe Communiques de presse
20 Communication Externe Newsletter
+97 -1
View File
@@ -90,5 +90,101 @@
"ph.created.by": "Prénom Nom ou email",
"ph.modified.by": "Prénom Nom ou email",
"ph.library": "Chemin relatif optionnel ex : Documents partagés",
"ph.dup.lib": "Toutes (laisser vide)"
"ph.dup.lib": "Toutes (laisser vide)",
"tab.transfer": " Transfert ",
"grp.xfer.source": "Source",
"grp.xfer.dest": "Destination",
"lbl.xfer.site": "URL du site :",
"lbl.xfer.library": "Bibliothèque / Dossier :",
"grp.xfer.options": "Options",
"chk.xfer.recursive": "Inclure les sous-dossiers (récursif)",
"chk.xfer.overwrite": "Écraser les fichiers existants",
"btn.xfer.start": "Lancer le transfert",
"btn.xfer.verify": "Vérifier",
"btn.xfer.open": "Ouvrir le rapport",
"ph.xfer.site": "https://tenant.sharepoint.com/sites/xxx",
"ph.xfer.library": "Documents partagés/sous-dossier",
"xfer.note": "Seule la version actuelle de chaque fichier est transférée (pas d'historique de versions).",
"chk.xfer.create.folders": "Créer les dossiers manquants",
"btn.xfer.csv": "Importer CSV...",
"btn.xfer.csv.clear": "Effacer",
"lbl.xfer.csv.info": "{0} transfert(s) chargé(s)",
"lbl.xfer.report.fmt": "Rapport :",
"tab.bulk": " Création en masse ",
"grp.bulk.list": "Sites à créer",
"btn.bulk.add": "Ajouter un site...",
"btn.bulk.csv": "Importer CSV...",
"btn.bulk.remove": "Supprimer",
"btn.bulk.clear": "Tout effacer",
"btn.bulk.create": "Créer tous les sites",
"bulk.col.name": "Nom du site",
"bulk.col.alias": "Alias URL",
"bulk.col.type": "Type",
"bulk.col.template": "Template",
"bulk.col.owners": "Propriétaires",
"bulk.col.members": "Membres",
"bulk.dlg.title": "Ajouter un site",
"bulk.dlg.title.edit": "Modifier un site",
"bulk.lbl.name": "Nom du site :",
"bulk.lbl.alias": "Alias URL (après /sites/) :",
"bulk.lbl.type": "Type de site :",
"bulk.rad.team": "Site d'équipe",
"bulk.rad.comm": "Site de communication",
"bulk.lbl.template": "Template :",
"bulk.lbl.owners": "Propriétaires (séparés par virgule) :",
"bulk.lbl.members": "Membres (séparés par virgule) :",
"bulk.btn.csv.members": "Importer CSV...",
"bulk.none": "(Aucun)",
"bulk.ph.owners": "admin@domaine.com, user2@domaine.com",
"bulk.ph.members": "user@domaine.com, ...",
"bulk.status.pending": "En attente",
"bulk.status.creating": "Création...",
"bulk.status.ok": "OK",
"bulk.status.error": "Erreur",
"tab.structure": " Structure ",
"grp.struct.csv": "Import CSV",
"lbl.struct.desc": "Importez un CSV pour créer une arborescence. Chaque colonne représente un niveau de profondeur.",
"btn.struct.csv": "Charger CSV...",
"grp.struct.preview": "Aperçu",
"grp.struct.target": "Cible",
"lbl.struct.library": "Bibliothèque cible :",
"ph.struct.library": "Documents partagés",
"btn.struct.create": "Créer l'arborescence",
"btn.struct.clear": "Effacer",
"struct.col.path": "Chemin complet",
"struct.col.depth": "Profondeur",
"tab.versions": " Versions ",
"grp.ver.keep": "Versions à conserver",
"lbl.ver.count": "Nombre de versions à garder :",
"chk.ver.date": "Filtrer aussi par date",
"rad.ver.before": "Garder les versions avant le :",
"rad.ver.after": "Garder les versions après le :",
"grp.ver.scope": "Périmètre",
"lbl.ver.library": "Bibliothèque / Dossier :",
"ph.ver.library": "Documents partagés",
"chk.ver.recursive": "Inclure les sous-dossiers (récursif)",
"chk.ver.subsites": "Inclure les sous-sites",
"chk.ver.dryrun": "Simulation (aperçu uniquement, aucune suppression)",
"btn.ver.run": "Nettoyer les versions",
"btn.ver.open": "Ouvrir le rapport",
"btn.register.app": "Enregistrer",
"reg.title": "Enregistrement de l'application",
"reg.offer": "Aucun Client ID fourni. Enregistrer une nouvelle application sur ce tenant ?",
"reg.confirm": "Enregistrer l'application 'SharePoint Toolbox' sur le tenant {0} ?",
"reg.in.progress": "En cours...",
"reg.success": "Application enregistrée avec succès !\nClient ID : {0}\nVous pouvez sauvegarder ce profil pour le réutiliser.",
"reg.err.tenant": "Impossible de déterminer le tenant à partir de l'URL fournie.",
"reg.err.nocmd": "Le module PnP.PowerShell ne supporte pas l'enregistrement d'applications. Veuillez enregistrer l'application manuellement dans Entra ID.",
"reg.err.no.id": "Enregistrement terminé mais aucun Client ID n'a été retourné.",
"reg.err.failed": "Échec de l'enregistrement :\n{0}",
"reg.err.no.tenant": "Veuillez d'abord saisir une URL de tenant.",
"reg.err.nopwsh": "PowerShell 7+ (pwsh) est requis pour l'enregistrement d'application mais n'a pas été trouvé. Installez-le depuis https://aka.ms/powershell",
"validate.missing.clientid": "Veuillez saisir un Client ID.",
"validate.missing.clientid.hint": "Veuillez saisir un Client ID ou utilisez le bouton 'Enregistrer' pour en créer un.",
"validate.missing.title": "Champ manquant"
}