DASHBOARD
›
◌ Hors ligne
0TOTAL
0VUE
🖨️
📄
📅
📦
🏥
🗑️
📊
☀️
Bonjour, –
📊 INTERVENTIONS PAR MODULE
🥧 RÉPARTITION PAR TYPE
📈 TENDANCE MENSUELLE
👷 TOP TECHNICIENS
⚠ ALERTES STOCK
📋 ACTIVITÉ RÉCENTE
TEMPS RÉEL📈 PAR MODULE
👥 Utilisateurs
GESTION DES COMPTES ET PERMISSIONS
📋 LISTE DES UTILISATEURS
✉️ LIEN D'INVITATION
Partagez ce lien à vos collaborateurs. Ils créent leur compte, puis vous attribuez leur rôle.
🗄️ Données
STATISTIQUES, SAUVEGARDE ET GESTION
📊 DÉTAIL PAR MODULE ET ONGLET
💾 SAUVEGARDE COMPLÈTE
Exportez une copie complète de toutes les données de l'application au format JSON.
⚠️ ZONE DANGEREUSE — SUPPRESSION DÉFINITIVE
Supprimez toutes les entrées d'un module. Cette action est irréversible. Effectuez une sauvegarde avant.
⚙️ Paramètres
CONFIGURATION DE L'APPLICATION
🔧 PARAMÈTRES GÉNÉRAUX
📄 INFORMATIONS APPLICATION
📋 Journaux
HISTORIQUE D'ACTIVITÉ ET D'ACTIONS
📋 JOURNAL D'ACTIVITÉ
🔐 Sécurité
RÈGLES FIRESTORE ET ACTIONS DE SÉCURITÉ
🔐 RÈGLES FIRESTORE
Règles Firestore complètes avec contrôle par rôle côté serveur. Copiez et déployez via firebase deploy --only firestore:rules :
rules_version = '2';
// ══════════════════════════════════════════════════════
// BHS Gestion Technique — Règles Firestore v9.1
// L2 FIX : règles complètes avec contrôle par rôle côté serveur
// Déployer via : firebase deploy --only firestore:rules
// ══════════════════════════════════════════════════════
service cloud.firestore {
match /databases/{database}/documents {
// ── Helpers ──────────────────────────────────────
function isAuth() {
return request.auth != null;
}
function userDoc() {
return get(/databases/$(database)/documents/users/$(request.auth.uid)).data;
}
function hasRole(role) {
return isAuth() && userDoc().role == role;
}
function isAdmin() { return hasRole('admin'); }
function isSupervisor() { return hasRole('supervisor'); }
function isTech() { return hasRole('tech'); }
function canWrite() { return isAdmin() || isSupervisor() || isTech(); }
function canDelete() { return isAdmin(); }
// ── Données métier (bhs_*) ───────────────────────
match /bhs_{coll}/{docId} {
allow read: if isAuth();
allow create: if canWrite();
allow update: if canWrite();
allow delete: if canDelete();
}
// ── Compteurs et métadonnées ─────────────────────
match /bhs_meta/{docId} {
allow read: if isAuth();
allow write: if canWrite();
}
// ── Historique ───────────────────────────────────
match /bhs_history/{docId} {
allow read: if isAuth();
allow create: if canWrite();
allow update, delete: if isAdmin();
}
// ── Activité ─────────────────────────────────────
match /bhs_activity/{docId} {
allow read: if isAuth();
allow create: if canWrite();
allow delete: if isAdmin();
}
// ── Gestion utilisateurs ─────────────────────────
match /users/{userId} {
// Chaque user peut lire son propre profil ; admins lisent tous
allow read: if isAuth() &&
(request.auth.uid == userId || isAdmin());
// Chaque user peut mettre à jour son propre profil (nom, préférences)
allow update: if isAuth() &&
(request.auth.uid == userId || isAdmin()) &&
// Seul l'admin peut changer le rôle
(!request.resource.data.diff(resource.data).affectedKeys().hasAny(['role']) || isAdmin());
allow create: if isAuth();
allow delete: if isAdmin();
}
}
}
✅
Statut de sécurité : en cours de vérification…
🛡️ ACTIONS DE SÉCURITÉ
DIAGNOSTIC SYSTÈME
Cliquer sur Relancer
Cliquer sur Relancer pour lancer le diagnostic
VERSIONS DES DÉPENDANCES
Firebase SDK : 10.7.1
SheetJS : 0.20.1
jsPDF : 2.5.1
Chart.js : 4.4.0
App : v12.4 · SW : bhs-gt-v12.2
0 sélectionné(s)
—
LISTE CLIENTS
COULEUR
Toucher une cellule
📊
AUCUN FICHIER CHARGÉ
Glisser-déposer jusqu'à 10 fichiers Excel ici
ou utiliser le bouton IMPORTER
ou utiliser le bouton IMPORTER
— ou —
MODULE IA PRÉDICTIVE
AUCUN ÉQUIPEMENT AVEC DONNÉES SUFFISANTES
0 article(s)
| RÉFÉRENCE | DÉSIGNATION | MODULE | QTÉ | MIN | STATUT | PRIX UNIT. | FOURNISSEUR | DERNIÈRE MAJ | ACTIONS |
|---|
AUCUNE PIÈCE ENREGISTRÉE — CLIQUEZ SUR "+ AJOUTER PIÈCE"
SÉLECTIONNER LA LANGUE DE L'INTERFACE
🇫🇷
Français
Français
COMPLET
🇬🇧
English
English
COMPLETE
APERÇU DES TRADUCTIONS
MODULE CLIENTS
✏️ Ajouter un client