Ajout documentation projets OpenClassrooms (P02-P13) avec support bilingue

- Add all project documentation pages in French and English
- Include PDF viewers for presentations and documents (P10, P12)
- Add collapsible sections for scripts and logs (P10)
- Add static assets for all projects
- Update sidebars with new projets-openclassrooms category
- Add npm start:en script for testing English locale
This commit is contained in:
Tellsanguis 2025-11-22 16:18:20 +01:00
parent 40a8985942
commit ed989ff004
86 changed files with 24243 additions and 1 deletions

View file

@ -0,0 +1,70 @@
# ============================================================================
# Script : MapDrives.ps1
# Version : 1.1
# Date : 29/07/2025
# Auteur : BENE Maël
# Description: Montage automatique des partages réseau personnels et de groupe
# ============================================================================
# Fonction pour supprimer les accents (normalisation)
function Remove-Accents($text) {
$normalized = [System.Text.NormalizationForm]::FormD
$string = [System.String]::new($text).Normalize($normalized)
$sb = New-Object System.Text.StringBuilder
foreach ($c in $string.ToCharArray()) {
if (-not [Globalization.CharUnicodeInfo]::GetUnicodeCategory($c).ToString().StartsWith("NonSpacingMark")) {
[void]$sb.Append($c)
}
}
return $sb.ToString().Normalize([System.Text.NormalizationForm]::FormC)
}
# Table de correspondance sans accents dans les clés
$groupShareMap = @{
"G_Admins" = "Admins"
"G_Audio" = "Audio"
"G_Commercial" = "Commercial"
"G_Direction" = "Direction"
"G_Developpeurs" = "Developpeurs"
"G_Graphisme" = "Graphisme"
"G_Responsables" = "Responsables"
"G_Testeurs" = "Tests"
}
# Récupération de l'utilisateur et des groupes AD
$user = $env:USERNAME
$userGroupsRaw = ([System.Security.Principal.WindowsIdentity]::GetCurrent()).Groups | ForEach-Object {
$_.Translate([System.Security.Principal.NTAccount]).Value.Split('\')[-1]
}
# Normalisation des noms de groupes
$userGroups = @()
foreach ($grp in $userGroupsRaw) {
$grpNorm = Remove-Accents $grp
$userGroups += $grpNorm
}
# Montage du partage personnel
$homeShare = "\\SRV-AD\$user`$"
Write-Host "Tentative de montage : $homeShare"
net use * $homeShare /persistent:no
if ($LASTEXITCODE -eq 0) {
Write-Host "Partage personnel monté avec succès."
} else {
Write-Host "Échec du montage du partage personnel."
}
# Montage des partages de groupe
foreach ($group in $userGroups) {
if ($groupShareMap.ContainsKey($group)) {
$shareName = $groupShareMap[$group]
$sharePath = "\\SRV-AD\$shareName"
Write-Host "Tentative de montage : $sharePath (via groupe $group)"
net use * $sharePath /persistent:no
if ($LASTEXITCODE -eq 0) {
Write-Host "Partage $shareName monté avec succès."
} else {
Write-Host "Échec du montage de $shareName."
}
}
}

Binary file not shown.

View file

@ -0,0 +1,9 @@
"Nom complet";"Commentaires";
"G_Admins";"";
"G_Audio";"";
"G_Commercial";"";
"G_Développeurs";"";
"G_Direction";"";
"G_Graphisme";"";
"G_Responsables";"";
"G_Testeurs";"";
1 Nom complet Commentaires
2 G_Admins
3 G_Audio
4 G_Commercial
5 G_Développeurs
6 G_Direction
7 G_Graphisme
8 G_Responsables
9 G_Testeurs

View file

@ -0,0 +1,8 @@
"Nom";"Statut";"Fabricant";"Lieu";"Type";"Modèle";"Firmware";"Dernière modification";
"BOX-SIT-001";"";"";"";"Box internet";"";"";"2025-07-21 13:25";
"FWL-SIT-001";"";"";"";"Firewall";"";"";"2025-07-21 13:25";
"SWS-ADM-001";"";"";"";"Switch";"";"";"2025-07-21 13:25";
"SWS-DEV-001";"";"";"";"Switch";"";"";"2025-07-21 13:25";
"SWS-GPH-001";"";"";"";"Switch";"";"";"2025-07-21 13:25";
"SWS-SIT-001";"";"";"";"Switch";"";"";"2025-07-21 13:25";
"SWS-TST-001";"";"";"";"Switch";"";"";"2025-07-21 13:25";
1 Nom Statut Fabricant Lieu Type Modèle Firmware Dernière modification
2 BOX-SIT-001 Box internet 2025-07-21 13:25
3 FWL-SIT-001 Firewall 2025-07-21 13:25
4 SWS-ADM-001 Switch 2025-07-21 13:25
5 SWS-DEV-001 Switch 2025-07-21 13:25
6 SWS-GPH-001 Switch 2025-07-21 13:25
7 SWS-SIT-001 Switch 2025-07-21 13:25
8 SWS-TST-001 Switch 2025-07-21 13:25

View file

@ -0,0 +1,66 @@
#!/bin/bash
# ============================================================================
# Script : mount_shares.sh
# Version : 1.0
# Date : 14/07/2025
# Auteur : BENE Maël
# Description: Montage automatique des partages CIFS personnels et de groupe
# ============================================================================
DOMAIN="BARZINI.INTERNAL"
SERVER="SRV-AD"
user="$(id -un)"
uid="$(id -u)"
gid="$(id -g)"
groups="$(id -Gn)"
# Liste fixe des partages de groupe disponibles
share_names=("Admins" "Audio" "Commercial" "Direction" "Développeurs" "Graphisme" "Responsables" "Tests")
# Montage du partage personnel
home_share="//${SERVER}/${user}\$"
home_mount="${user_home}/Dossier_perso"
echo "Montage du dossier personnel : $home_share"
if [ ! -d "$home_mount" ]; then
mkdir -p "$home_mount"
chown "$uid:$gid" "$home_mount"
fi
if ! mountpoint -q "$home_mount"; then
sudo mount -t cifs -o "sec=krb5,cruid=${user},uid=${uid},gid=${gid},nofail" "$home_share" "$home_mount" && \
echo "Partage personnel monté sur $home_mount" || \
echo "Échec du montage du partage personnel"
else
echo "Déjà monté : $home_mount"
fi
# Montage des partages de groupe
for share in "${share_names[@]}"; do
for grp in $groups; do
clean_grp=$(echo "$grp" | tr '[:upper:]' '[:lower:]')
clean_share=$(echo "$share" | tr '[:upper:]' '[:lower:]')
if [[ "$clean_grp" == *"$clean_share"* ]]; then
share_path="//${SERVER}/${share}"
mount_point="${user_home}/${share}"
echo "Tentative de montage de $share_path"
if [ ! -d "$mount_point" ]; then
mkdir -p "$mount_point"
chown "$uid:$gid" "$mount_point"
fi
if ! mountpoint -q "$mount_point"; then
sudo mount -t cifs -o "sec=krb5,cruid=${user},uid=${uid},gid=${gid},nofail" "$share_path" "$mount_point" && \
echo "Partage monté : $mount_point" || \
echo "Échec du montage : $share_path"
else
echo "Déjà monté : $mount_point"
fi
break
fi
done
done

View file

@ -0,0 +1,40 @@
"Nom";"Statut";"Fabricant";"Numéro de série";"Type";"Modèle";"Système d'exploitation - Nom";"Lieu";"Dernière modification";"Composants - Processeur";
"PCX-GPH-001";"";"";"";"Ordinateur de bureau";"";"";"";"2025-07-21 13:16";"";
"PCX-GPH-002";"";"";"";"Ordinateur de bureau";"";"";"";"2025-07-21 13:16";"";
"PCX-GPH-003";"";"";"";"Ordinateur de bureau";"";"";"";"2025-07-21 13:16";"";
"PCX-GPH-003";"";"";"";"Ordinateur de bureau";"";"";"";"2025-07-21 13:16";"";
"PFX-DEV-001";"";"";"";"Ordinateur de bureau";"";"";"";"2025-07-21 13:16";"";
"PFX-DEV-002";"";"";"";"Ordinateur de bureau";"";"";"";"2025-07-21 13:16";"";
"PFX-DEV-003";"";"";"";"Ordinateur de bureau";"";"";"";"2025-07-21 13:16";"";
"PFX-DEV-004";"";"";"";"Ordinateur de bureau";"";"";"";"2025-07-21 13:16";"";
"PFX-DEV-005";"";"";"";"Ordinateur de bureau";"";"";"";"2025-07-21 13:16";"";
"PFX-SIT-001";"";"";"";"Ordinateur de bureau";"";"";"";"2025-07-21 13:16";"";
"PFX-SIT-002";"";"";"";"Ordinateur de bureau";"";"";"";"2025-07-21 13:16";"";
"PFX-SND-001";"";"";"";"Ordinateur de bureau";"";"";"";"2025-07-21 13:16";"";
"PFX-SND-002";"";"";"";"Ordinateur de bureau";"";"";"";"2025-07-21 13:16";"";
"PFX-SND-003";"";"";"";"Ordinateur de bureau";"";"";"";"2025-07-21 13:16";"";
"PFX-TST-001";"";"";"";"Ordinateur de bureau";"";"";"";"2025-07-21 13:16";"";
"PPB-ADM-001";"";"";"";"Ordinateur portable";"";"";"";"2025-07-21 13:18";"";
"PPB-ADM-002";"";"";"";"Ordinateur portable";"";"";"";"2025-07-21 13:18";"";
"PPB-ADM-003";"";"";"";"Ordinateur portable";"";"";"";"2025-07-21 13:18";"";
"PPB-ADM-004";"";"";"";"Ordinateur portable";"";"";"";"2025-07-21 13:18";"";
"PPB-ADM-005";"";"";"";"Ordinateur portable";"";"";"";"2025-07-21 13:18";"";
"PPB-ADM-006";"";"";"";"Ordinateur portable";"";"";"";"2025-07-21 13:18";"";
"PPB-DEV-001";"";"";"";"Ordinateur portable";"";"";"";"2025-07-21 13:18";"";
"PPB-DEV-002";"";"";"";"Ordinateur portable";"";"";"";"2025-07-21 13:18";"";
"PPB-DEV-003";"";"";"";"Ordinateur portable";"";"";"";"2025-07-21 13:18";"";
"PPB-DEV-004";"";"";"";"Ordinateur portable";"";"";"";"2025-07-21 13:18";"";
"PPB-GPH-001";"";"";"";"Ordinateur portable";"";"";"";"2025-07-21 13:18";"";
"PPB-GPH-002";"";"";"";"Ordinateur portable";"";"";"";"2025-07-21 13:18";"";
"PPB-GPH-004";"";"";"";"Ordinateur portable";"";"";"";"2025-07-21 13:18";"";
"PPB-GPH-005";"";"";"";"Ordinateur portable";"";"";"";"2025-07-21 13:18";"";
"PPB-GPH-006";"";"";"";"Ordinateur portable";"";"";"";"2025-07-21 13:18";"";
"PPB-GPH-007";"";"";"";"Ordinateur portable";"";"";"";"2025-07-21 13:18";"";
"PPB-SND-001";"";"";"";"Ordinateur portable";"";"";"";"2025-07-21 13:18";"";
"PPB-SND-002";"";"";"";"Ordinateur portable";"";"";"";"2025-07-21 13:18";"";
"PPB-TST-001";"";"";"";"Ordinateur portable";"";"";"";"2025-07-21 13:18";"";
"PPB-TST-002";"";"";"";"Ordinateur portable";"";"";"";"2025-07-21 13:18";"";
"PPB-TST-003";"";"";"";"Ordinateur portable";"";"";"";"2025-07-21 13:18";"";
"PPB-TST-004";"";"";"";"Ordinateur portable";"";"";"";"2025-07-21 13:18";"";
"SRV-INF-001";"";"";"";"Serveur";"";"";"";"2025-07-21 13:16";"";
"SRV-INF-002";"";"";"";"Serveur";"";"";"";"2025-07-21 13:16";"";
1 Nom Statut Fabricant Numéro de série Type Modèle Système d'exploitation - Nom Lieu Dernière modification Composants - Processeur
2 PCX-GPH-001 Ordinateur de bureau 2025-07-21 13:16
3 PCX-GPH-002 Ordinateur de bureau 2025-07-21 13:16
4 PCX-GPH-003 Ordinateur de bureau 2025-07-21 13:16
5 PCX-GPH-003 Ordinateur de bureau 2025-07-21 13:16
6 PFX-DEV-001 Ordinateur de bureau 2025-07-21 13:16
7 PFX-DEV-002 Ordinateur de bureau 2025-07-21 13:16
8 PFX-DEV-003 Ordinateur de bureau 2025-07-21 13:16
9 PFX-DEV-004 Ordinateur de bureau 2025-07-21 13:16
10 PFX-DEV-005 Ordinateur de bureau 2025-07-21 13:16
11 PFX-SIT-001 Ordinateur de bureau 2025-07-21 13:16
12 PFX-SIT-002 Ordinateur de bureau 2025-07-21 13:16
13 PFX-SND-001 Ordinateur de bureau 2025-07-21 13:16
14 PFX-SND-002 Ordinateur de bureau 2025-07-21 13:16
15 PFX-SND-003 Ordinateur de bureau 2025-07-21 13:16
16 PFX-TST-001 Ordinateur de bureau 2025-07-21 13:16
17 PPB-ADM-001 Ordinateur portable 2025-07-21 13:18
18 PPB-ADM-002 Ordinateur portable 2025-07-21 13:18
19 PPB-ADM-003 Ordinateur portable 2025-07-21 13:18
20 PPB-ADM-004 Ordinateur portable 2025-07-21 13:18
21 PPB-ADM-005 Ordinateur portable 2025-07-21 13:18
22 PPB-ADM-006 Ordinateur portable 2025-07-21 13:18
23 PPB-DEV-001 Ordinateur portable 2025-07-21 13:18
24 PPB-DEV-002 Ordinateur portable 2025-07-21 13:18
25 PPB-DEV-003 Ordinateur portable 2025-07-21 13:18
26 PPB-DEV-004 Ordinateur portable 2025-07-21 13:18
27 PPB-GPH-001 Ordinateur portable 2025-07-21 13:18
28 PPB-GPH-002 Ordinateur portable 2025-07-21 13:18
29 PPB-GPH-004 Ordinateur portable 2025-07-21 13:18
30 PPB-GPH-005 Ordinateur portable 2025-07-21 13:18
31 PPB-GPH-006 Ordinateur portable 2025-07-21 13:18
32 PPB-GPH-007 Ordinateur portable 2025-07-21 13:18
33 PPB-SND-001 Ordinateur portable 2025-07-21 13:18
34 PPB-SND-002 Ordinateur portable 2025-07-21 13:18
35 PPB-TST-001 Ordinateur portable 2025-07-21 13:18
36 PPB-TST-002 Ordinateur portable 2025-07-21 13:18
37 PPB-TST-003 Ordinateur portable 2025-07-21 13:18
38 PPB-TST-004 Ordinateur portable 2025-07-21 13:18
39 SRV-INF-001 Serveur 2025-07-21 13:16
40 SRV-INF-002 Serveur 2025-07-21 13:16

Binary file not shown.

View file

@ -0,0 +1,9 @@
"Nom";"Statut";"Fabricant";"Lieu";"Type";"Modèle";"Dernière modification";"Usager";
"SPA-DEV-001";"";"";"";"Telephone Android";"";"2025-07-21 13:22";"";
"SPA-DEV-002";"";"";"";"Telephone Android";"";"2025-07-21 13:22";"";
"SPA-DEV-003";"";"";"";"Telephone Android";"";"2025-07-21 13:22";"";
"SPA-DEV-004";"";"";"";"Telephone Android";"";"2025-07-21 13:22";"";
"SPA-TST-001";"";"";"";"Telephone Android";"";"2025-07-21 13:22";"";
"SPI-DEV-001";"";"";"";"Telephone iPhone";"";"2025-07-21 13:22";"";
"SPI-DEV-002";"";"";"";"Telephone iPhone";"";"2025-07-21 13:22";"";
"SPI-TST-001";"";"";"";"Telephone iPhone";"";"2025-07-21 13:22";"";
1 Nom Statut Fabricant Lieu Type Modèle Dernière modification Usager
2 SPA-DEV-001 Telephone Android 2025-07-21 13:22
3 SPA-DEV-002 Telephone Android 2025-07-21 13:22
4 SPA-DEV-003 Telephone Android 2025-07-21 13:22
5 SPA-DEV-004 Telephone Android 2025-07-21 13:22
6 SPA-TST-001 Telephone Android 2025-07-21 13:22
7 SPI-DEV-001 Telephone iPhone 2025-07-21 13:22
8 SPI-DEV-002 Telephone iPhone 2025-07-21 13:22
9 SPI-TST-001 Telephone iPhone 2025-07-21 13:22

View file

@ -0,0 +1,40 @@
"Identifiant";"Nom de famille";"Courriels";"Téléphone";"Lieu";"Actif";
"a.cailot";"Cailot";"";"";"";"Oui";
"a.fournier";"Fournier";"";"";"";"Oui";
"a.turcotte";"Turcotte";"";"";"";"Oui";
"b.aupry";"Aupry";"";"";"";"Oui";
"b.banon";"Banon";"";"";"";"Oui";
"b.schneider";"Schneider";"";"";"";"Oui";
"c.caron";"Caron";"";"";"";"Oui";
"c.desaulniers";"Desaulniers";"";"";"";"Oui";
"c.seguin";"Séguin";"";"";"";"Oui";
"d.descoteaux";"Descoteaux";"";"";"";"Oui";
"d.fluet";"Fluet";"";"";"";"Oui";
"d.ramos";"Ramos";"";"";"";"Oui";
"e.dupy";"Dupy";"";"";"";"Oui";
"e.navarro";"Navarro";"";"";"";"Oui";
"f.gaulin";"Gaulin";"";"";"";"Oui";
"f.lang";"Lang";"";"";"";"Oui";
"f.paquette";"Paquette";"";"";"";"Oui";
"g.favreau";"Favreau";"";"";"";"Oui";
"g.langelier";"Langelier";"";"";"";"Oui";
"glpi-system";"Support";"";"";"";"Oui";
"h.gamelin";"Gamelin";"";"";"";"Oui";
"i.herve";"Hervé";"";"";"";"Oui";
"j.baron";"Baron";"";"";"";"Oui";
"j.champagne";"Champagne";"";"";"";"Oui";
"j.daigneault";"Daigneault";"";"";"";"Oui";
"l.laurent";"Laurent";"";"";"";"Oui";
"m.allard";"Allard";"";"";"";"Oui";
"m.anoux";"Anoux";"";"";"";"Oui";
"m.bene";"Bene";"";"";"";"Oui";
"m.lazure";"Lazure";"";"";"";"Oui";
"m.monjeau";"Monjeau";"";"";"";"Oui";
"n.roux";"Roux";"";"";"";"Oui";
"o.couturier";"Couturier";"";"";"";"Oui";
"p.marcoux";"Marcoux";"";"";"";"Oui";
"p.poirierdebuisson";"Poirier de Buisson";"";"";"";"Oui";
"r.ruiz";"Ruiz";"";"";"";"Oui";
"v.arcouet";"Arcouet";"";"";"";"Oui";
"v.gougeon";"Gougeon";"";"";"";"Oui";
"v.jacob";"Jacob";"";"";"";"Oui";
1 Identifiant Nom de famille Courriels Téléphone Lieu Actif
2 a.cailot Cailot Oui
3 a.fournier Fournier Oui
4 a.turcotte Turcotte Oui
5 b.aupry Aupry Oui
6 b.banon Banon Oui
7 b.schneider Schneider Oui
8 c.caron Caron Oui
9 c.desaulniers Desaulniers Oui
10 c.seguin Séguin Oui
11 d.descoteaux Descoteaux Oui
12 d.fluet Fluet Oui
13 d.ramos Ramos Oui
14 e.dupy Dupy Oui
15 e.navarro Navarro Oui
16 f.gaulin Gaulin Oui
17 f.lang Lang Oui
18 f.paquette Paquette Oui
19 g.favreau Favreau Oui
20 g.langelier Langelier Oui
21 glpi-system Support Oui
22 h.gamelin Gamelin Oui
23 i.herve Hervé Oui
24 j.baron Baron Oui
25 j.champagne Champagne Oui
26 j.daigneault Daigneault Oui
27 l.laurent Laurent Oui
28 m.allard Allard Oui
29 m.anoux Anoux Oui
30 m.bene Bene Oui
31 m.lazure Lazure Oui
32 m.monjeau Monjeau Oui
33 n.roux Roux Oui
34 o.couturier Couturier Oui
35 p.marcoux Marcoux Oui
36 p.poirierdebuisson Poirier de Buisson Oui
37 r.ruiz Ruiz Oui
38 v.arcouet Arcouet Oui
39 v.gougeon Gougeon Oui
40 v.jacob Jacob Oui