Compare commits
22 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 10bfe6debc | |||
| 945a4e110d | |||
| 109d0d5f1e | |||
| b4f0fecad2 | |||
| 903fa17f8a | |||
| 693f21915d | |||
| ab39e55194 | |||
| a1edea3007 | |||
| db0f87dc00 | |||
| 28e4c21e80 | |||
| 5c5e4b1415 | |||
| 086804edf9 | |||
| 9dc85c8057 | |||
| 9bcbad5d5b | |||
| 0e5f67bfa4 | |||
| 14bb1a7c13 | |||
| a256e30c59 | |||
| 2856964858 | |||
| 3ca58a4da0 | |||
| 2cc9d91f5a | |||
| ee609cfaa4 | |||
| 245f2d6b69 |
@@ -1,3 +1,4 @@
|
|||||||
|
#Wkf
|
||||||
name: Release zip package
|
name: Release zip package
|
||||||
|
|
||||||
on:
|
on:
|
||||||
@@ -10,28 +11,36 @@ jobs:
|
|||||||
runs-on: native
|
runs-on: native
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- 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
|
- name: Build zip
|
||||||
shell: pwsh
|
|
||||||
run: |
|
run: |
|
||||||
$version = $env:GITHUB_REF_NAME
|
cd repo
|
||||||
$zip = "SharePoint_ToolBox_${version}.zip"
|
VERSION="${{ gitea.ref_name }}"
|
||||||
Compress-Archive -Force -Path Sharepoint_ToolBox.ps1, lang -DestinationPath $zip
|
ZIP="SharePoint_ToolBox_${VERSION}.zip"
|
||||||
"ZIP=$zip" >> $env:GITHUB_ENV
|
zip -r "../${ZIP}" Sharepoint_ToolBox.ps1 lang/ examples/
|
||||||
"VERSION=$version" >> $env:GITHUB_ENV
|
echo "ZIP=${ZIP}" >> "$GITHUB_ENV"
|
||||||
|
echo "VERSION=${VERSION}" >> "$GITHUB_ENV"
|
||||||
|
|
||||||
- name: Create release and upload asset
|
- name: Create release
|
||||||
uses: https://gitea.com/actions/gitea-release-action@latest
|
run: |
|
||||||
with:
|
RELEASE_ID=$(curl -sf -X POST \
|
||||||
token: ${{ secrets.RELEASE_TOKEN }}
|
"${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases" \
|
||||||
tag_name: ${{ env.VERSION }}
|
-H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \
|
||||||
release_name: "SharePoint ToolBox ${{ env.VERSION }}"
|
-H "Content-Type: application/json" \
|
||||||
body: |
|
-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\"}" \
|
||||||
## SharePoint ToolBox ${{ env.VERSION }}
|
| python3 -c "import sys,json; print(json.load(sys.stdin)['id'])")
|
||||||
|
echo "RELEASE_ID=${RELEASE_ID}" >> "$GITHUB_ENV"
|
||||||
|
|
||||||
### Installation
|
- name: Upload asset
|
||||||
1. Télécharger et extraire le zip
|
run: |
|
||||||
2. Lancer `Sharepoint_ToolBox.ps1` avec PowerShell
|
curl -sf -X POST \
|
||||||
3. Prérequis : module `PnP.PowerShell` (`Install-Module PnP.PowerShell`)
|
"${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases/${{ env.RELEASE_ID }}/assets" \
|
||||||
files: ${{ env.ZIP }}
|
-H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \
|
||||||
|
-F "attachment=@${{ env.ZIP }}"
|
||||||
|
|||||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -3,3 +3,6 @@
|
|||||||
*.json
|
*.json
|
||||||
!lang/
|
!lang/
|
||||||
!lang/*.json
|
!lang/*.json
|
||||||
|
!wiki/
|
||||||
|
!wiki/*.html
|
||||||
|
!wiki/*.md
|
||||||
@@ -1,4 +1,4 @@
|
|||||||

|

|
||||||
|
|
||||||
Application PowerShell avec interface graphique (WinForms) pour administrer, auditer et exporter des données depuis des sites SharePoint Online.
|
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 |
BIN
SPToolbox-logo.png
Normal file
BIN
SPToolbox-logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 850 KiB |
File diff suppressed because it is too large
Load Diff
1
TODO.md
1
TODO.md
@@ -1,4 +1,3 @@
|
|||||||
# Features à ajouter :
|
# Features à ajouter :
|
||||||
- Sauvegarde du contexte d'authentification en plus des profils
|
- Sauvegarde du contexte d'authentification en plus des profils
|
||||||
- Possibilité de demander la liste de site auquels un user precis a acces
|
- Possibilité de demander la liste de site auquels un user precis a acces
|
||||||
- Copie de site à site
|
|
||||||
8
examples/bulk_add_members.csv
Normal file
8
examples/bulk_add_members.csv
Normal 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
|
||||||
|
6
examples/bulk_create_sites.csv
Normal file
6
examples/bulk_create_sites.csv
Normal 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;
|
||||||
|
4
examples/bulk_transfer.csv
Normal file
4
examples/bulk_transfer.csv
Normal 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
|
||||||
|
20
examples/folder_structure.csv
Normal file
20
examples/folder_structure.csv
Normal 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;
|
||||||
|
98
lang/fr.json
98
lang/fr.json
@@ -90,5 +90,101 @@
|
|||||||
"ph.created.by": "Prénom Nom ou email",
|
"ph.created.by": "Prénom Nom ou email",
|
||||||
"ph.modified.by": "Prénom Nom ou email",
|
"ph.modified.by": "Prénom Nom ou email",
|
||||||
"ph.library": "Chemin relatif optionnel ex : Documents partagés",
|
"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"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user