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:
parent
40a8985942
commit
ed989ff004
86 changed files with 24243 additions and 1 deletions
70
static/assets/projets-oc/p09/MapDrives.ps1
Normal file
70
static/assets/projets-oc/p09/MapDrives.ps1
Normal 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."
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
static/assets/projets-oc/p09/ansible.zip
Normal file
BIN
static/assets/projets-oc/p09/ansible.zip
Normal file
Binary file not shown.
9
static/assets/projets-oc/p09/groups_glpi.csv
Normal file
9
static/assets/projets-oc/p09/groups_glpi.csv
Normal 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";"";
|
||||
|
8
static/assets/projets-oc/p09/materiels_reseau_glpi.csv
Normal file
8
static/assets/projets-oc/p09/materiels_reseau_glpi.csv
Normal 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";
|
||||
|
66
static/assets/projets-oc/p09/mount_shares.sh
Normal file
66
static/assets/projets-oc/p09/mount_shares.sh
Normal 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
|
||||
40
static/assets/projets-oc/p09/ordinateurs_glpi.csv
Normal file
40
static/assets/projets-oc/p09/ordinateurs_glpi.csv
Normal 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";"";
|
||||
|
BIN
static/assets/projets-oc/p09/rapport_ansible.pdf
Normal file
BIN
static/assets/projets-oc/p09/rapport_ansible.pdf
Normal file
Binary file not shown.
9
static/assets/projets-oc/p09/telephones_glpi.csv
Normal file
9
static/assets/projets-oc/p09/telephones_glpi.csv
Normal 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";"";
|
||||
|
40
static/assets/projets-oc/p09/users_glpi.csv
Normal file
40
static/assets/projets-oc/p09/users_glpi.csv
Normal 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";
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue