🔐 Système de Permissions par Rôle
🎯 Rôles disponibles
Votre système dispose maintenant de 3 nôles avec des permissions différentes :
| Rôle | Description | Icône |
|------|-------------|-------|
| Administrateur | Accès complet à tout le système | 👑 |
| Gestionnaire | Peut gérer factures, clients et produits | 💼 |
| Lecteur | Peut uniquement consulter (lecture seule) | 👁️ |
---
📋 Permissions par rôle
👑 Administrateur
✅ Tout - Accès complet
- ✅ Voir, créer, modifier, supprimer les factures
- ✅ Voir, créer, modifier, supprimer les clients
- ✅ Voir, créer, modifier, supprimer les produits
- ✅ Voir, créer, modifier, supprimer les utilisateurs
- ✅ Modifier les paramètres
- ✅ Envoyer des emails
💼 Gestionnaire
✅ Gestion quotidienne
- ✅ Voir, créer, modifier, supprimer les factures
- ✅ Voir, créer, modifier, supprimer les clients
- ✅ Voir, créer, modifier, supprimer les produits
- ✅ Envoyer des emails
- ❌ PAS d'accès à la gestion des utilisateurs
- ❌ PAS d'accès aux paramètres
👁️ Lecteur (Lecture seule)
✅ Consultation uniquement
- ✅ Voir les factures
- ✅ Voir les clients
- ✅ Voir les produits
- ✅ Imprimer les factures
- ❌ PAS de création
- ❌ PAS de modification
- ❌ PAS de suppression
- ❌ PAS d'envoi d'emails
---
🎨 Interface selon le rôle
Pour un Lecteur, l'interface masque automatiquement :
Sur la page des factures :
- ❌ Bouton "➕ Nouvelle facture"
- ❌ Bouton "✏️ Modifier" sur chaque facture
- ❌ Bouton "🗑️ Supprimer" sur chaque facture
- ✅ Bouton "👁️ Voir" (visible)
Sur la vue d'une facture :
- ❌ Bouton "✏️ Modifier"
- ❌ Bouton "📧 Envoyer par email"
- ✅ Bouton "🖨️ Imprimer / PDF" (visible)
Sur la page des clients :
- ❌ Bouton "➕ Nouveau client"
- ❌ Bouton "✏️ Modifier" sur chaque client
- ❌ Bouton "🗑️ Supprimer" sur chaque client
Sur la page des produits :
- ❌ Bouton "➕ Nouveau produit"
- ❌ Bouton "✏️ Modifier" sur chaque produit
- ❌ Bouton "🗑️ Supprimer" sur chaque produit
---
🔒 Protection des pages
Si un Lecteur essaie d'accéder directement à une URL protégée :
```
❌ /admin/edit-invoice.php
→ Redirigé vers /admin/invoices.php
→ Message : "Vous n'avez pas la permission d'effectuer cette action."
```
---
🛠️ Fichiers modifiés
| Fichier | Modifications |
|---------|--------------|
| check-permissions.php | ✨ NOUVEAU - Système de permissions |
| edit-invoice.php | 🔒 Protection création/modification |
| view-invoice.php | 🎨 Masquage boutons Modifier/Email |
| invoices.php | 🎨 Masquage boutons selon rôle |
| clients.php | 🎨 Masquage boutons selon rôle |
| products.php | 🎨 Masquage boutons selon rôle |
---
📝 Comment attribuer un rôle
- Allez dans "Utilisateurs"
- Créez un nouvel utilisateur
- Sélectionnez le rôle :
- 👑 Administrateur
- 💼 Gestionnaire
- 👁️ Lecteur
---
🧪 Test du système
Pour tester le rôle "Lecteur" :
- Créez un utilisateur lecteur :
- Nom : lecteur_test
- Rôle : Lecteur
- Déconnectez-vous
- Connectez-vous avec le compte lecteur
- Vérifiez :
- ✅ Vous voyez les factures
- ❌ Pas de bouton "Nouvelle facture"
- ❌ Pas de bouton "Modifier"
- ❌ Pas de bouton "Supprimer"
- Essayez d'accéder directement :
```
www.web.proinfo83.fr/admin/edit-invoice.php
```
→ Vous serez redirigé avec un message d'erreur
---
🔧 Fonctions disponibles dans le code
Si vous voulez personnaliser davantage, utilisez ces fonctions :
```php
// Vérifier si l'utilisateur a une permission
if (hasPermission('create_invoice')) {
// Afficher le bouton
}
// Vérifier si l'utilisateur est en lecture seule
if (isReadOnly()) {
// Masquer tous les boutons de modification
}
// Obtenir le rôle de l'utilisateur
$role = getUserRole(); // 'administrateur', 'gestionnaire', ou 'lecteur'
// Forcer une permission (redirige si pas autorisé)
requirePermission('edit_invoice', 'invoices.php');
```
---
🎯 Cas d'usage
Exemple 1 : Comptable externe
Rôle : Lecteur
Besoin : Consulter les factures pour la comptabilité
Accès : Lecture seule, peut imprimer
Exemple 2 : Assistant commercial
Rôle : Gestionnaire
Besoin : Créer des factures et gérer les clients
Accès : Complet sauf gestion des utilisateurs
Exemple 3 : Propriétaire
Rôle : Administrateur
Besoin : Contrôle total
Accès : Tout
---
🚀 Installation
- Uploadez les fichiers modifiés :
- ✅ check-permissions.php (nouveau)
- ✅ edit-invoice.php
- ✅ view-invoice.php
- ✅ invoices.php
- ✅ clients.php
- ✅ products.php
- Testez :
- Créez un utilisateur avec le rôle "Lecteur"
- Connectez-vous avec ce compte
- Vérifiez que vous ne pouvez pas modifier
---
⚠️ Important
- Les utilisateurs Administrateur et Gestionnaire gardent tous leurs droits
- Seul le rôle Lecteur est restreint
- Un lecteur peut toujours imprimer les factures
- Un lecteur ne peut pas envoyer d'emails
---
Votre système est maintenant sécurisé avec des permissions par rôle ! 🔐✨