Rôles et permissions
Cette section s'adresse aux propriétaires d'instances QuantumLogs.
QuantumLogs utilise les rôles Discord pour gérer les permissions d'accès au dashboard. Toute la configuration se fait depuis l'interface web.
Niveaux d'accès
Propriétaire (Owner)
Le propriétaire est le compte Discord défini lors de la création de l'instance. Il a accès à :
- Toutes les pages du dashboard
- La gestion des extensions (activation, désactivation, configuration)
- La configuration de l'authentification Discord
- Les pages d'administration (Extensions, Connector Health)
Le propriétaire bypass toutes les vérifications de rôles. Il a toujours accès à tout, même si aucun rôle n'est configuré.
Staff (membres avec rôle requis)
Les membres Discord ayant le Required Role ont accès au dashboard. Par défaut, ils voient :
- La consultation des logs (toujours accessible)
- QuantumQL
- Le journal
Les autres extensions (Analytics, Kanban, Pterodactyl, etc.) peuvent être restreintes par rôle individuellement via le champ requiredDiscordRole dans la configuration de chaque extension (voir ci-dessous).
Admin (membres avec Admin Role)
Si un Admin Role ID est configuré, les utilisateurs ayant ce rôle bypasse les restrictions par extension. Ils ont accès à toutes les extensions, sans avoir besoin du rôle spécifique de chaque extension.
L'Admin Role ne donne pas accès à la page Administration / configuration des extensions. Seul le propriétaire y a accès.
Membres sans rôle
Les membres Discord qui n'ont pas le rôle requis voient la page "Mauvais rôle" et ne peuvent pas accéder au dashboard.
Configurer les rôles depuis l'interface
La configuration des rôles se fait dans Administration > Extensions, section Discord Authentication.
Étape 1 : Ouvrir la configuration Discord
- Connectez-vous en tant que propriétaire
- Allez dans Administration > Extensions
- Trouvez Discord Authentication dans les modules principaux
- Cliquez sur l'icône configuration (engrenage)
Étape 2 : Configurer les champs
L'éditeur de configuration affiche les champs suivants :
| Champ | Description | Exemple |
|---|---|---|
| Guild ID | ID de votre serveur Discord. Restreint l'accès aux membres de ce serveur. | 1335950166645276732 |
| Required Role ID | ID du rôle Discord obligatoire pour accéder au dashboard. Si vide, tous les membres du serveur peuvent accéder. | 1356921755176013886 |
| Admin Role ID | ID du rôle admin Discord. Les utilisateurs avec ce rôle bypasse les autres vérifications de rôle. | 1356921755176013887 |
Étape 3 : Obtenir un ID de rôle Discord
- Ouvrez Discord sur PC
- Allez dans Paramètres utilisateur > Avancé > Mode développeur : activez-le
- Dans les paramètres de votre serveur Discord, allez dans Rôles
- Clic droit sur le rôle souhaité > Copier l'identifiant
Étape 4 : Sauvegarder
Cliquez sur Sauvegarder dans l'éditeur. Les changements sont appliqués immédiatement, sans redémarrage.
Exemple : 2 niveaux d'accès (Fondateur + Staff)
Voici comment configurer un accès fondateur avec tous les droits et un accès staff limité aux logs :
1. Créer les rôles Discord
Sur votre serveur Discord, créez deux rôles :
- Fondateur (ou utilisez votre rôle existant)
- Staff QuantumLogs
2. Configurer QuantumLogs
Dans la configuration Discord Authentication :
| Champ | Valeur |
|---|---|
| Guild ID | L'ID de votre serveur Discord |
| Required Role ID | L'ID du rôle Staff QuantumLogs |
| Admin Role ID | (laisser vide) |
3. Résultat
| Utilisateur | Accès |
|---|---|
| Vous (propriétaire) | Accès complet : logs, extensions, configuration, administration |
| Staff avec le rôle "Staff QuantumLogs" | Accès aux logs, QuantumQL, analytics, journal, kanban. Pas d'accès à la configuration des extensions ni à l'administration. |
| Membres Discord sans le rôle | Page "Mauvais rôle", aucun accès |
Le propriétaire n'a pas besoin d'avoir le rôle Staff. Son Discord ID lui donne automatiquement accès à tout.
Tableau récapitulatif des accès
| Configuration | Owner | Membre avec rôle requis | Membre sans rôle |
|---|---|---|---|
| Sans Guild ID | Accès complet | Pas d'accès (propriétaire seul) | Pas d'accès |
| Guild ID seul (sans Required Role) | Accès complet | Accès (si membre du serveur) | Accès (si membre du serveur) |
| Guild ID + Required Role | Accès complet | Accès (si membre + rôle) | Refusé |
Restreindre l'accès aux extensions par rôle
Chaque extension dispose d'un champ requiredDiscordRole dans sa configuration. Ce champ permet de limiter l'accès à cette extension à un rôle Discord spécifique.
Fonctionnement
- Champ vide (par défaut) : l'extension est accessible à tous les membres authentifiés (qui ont le Required Role global)
- Champ renseigné avec un ID de rôle : seuls les membres ayant ce rôle spécifique (ou le Admin Role, ou le propriétaire) peuvent accéder à l'extension
Exception : les Logs
La section Logs est la seule partie qui n'est pas soumise à cette restriction par extension. Tout membre ayant le Required Role global (configuré dans Discord Authentication) a automatiquement accès aux logs. C'est le socle de base de QuantumLogs.
Configurer une restriction par rôle
- Allez dans Administration > Extensions
- Cliquez sur l'icône configuration (engrenage) de l'extension à restreindre
- Renseignez le champ requiredDiscordRole avec l'ID du rôle Discord
- Sauvegardez
Exemple : accès Analytics limité aux fondateurs
Si vous voulez que seuls les fondateurs voient les analytics, mais que tout le staff voie les logs :
| Champ | Valeur |
|---|---|
| Discord Auth > Required Role ID | ID du rôle "Staff" |
| Analytics > requiredDiscordRole | ID du rôle "Fondateur" |
| Kanban > requiredDiscordRole | (vide = accessible au staff) |
Résultat :
- Fondateur : voit les logs + analytics + kanban + tout le reste
- Staff : voit les logs + kanban, mais pas les analytics
- Membre sans rôle : aucun accès
Hiérarchie d'accès
Quand un membre tente d'accéder à une extension avec un requiredDiscordRole configuré, QuantumLogs vérifie dans cet ordre :
- Propriétaire (Owner Discord ID) → toujours autorisé
- Admin Role → autorisé (bypass toutes les restrictions par extension)
- Rôle de l'extension (
requiredDiscordRole) → autorisé si le membre possède ce rôle - Sinon → accès refusé
Ce que voit le staff vs le propriétaire
| Fonctionnalité | Propriétaire | Staff | Restreinte par rôle ? |
|---|---|---|---|
| Logs | Oui | Oui | Non (toujours accessible) |
| QuantumQL | Oui | Oui | Non |
| Journal | Oui | Oui | Non |
| Analytics | Oui | Par défaut oui | Oui (via requiredDiscordRole) |
| Kanban | Oui | Par défaut oui | Oui (via requiredDiscordRole) |
| Dashboard/Widgets | Oui | Par défaut oui | Oui (via requiredDiscordRole) |
| Pterodactyl | Oui | Par défaut oui | Oui (via requiredDiscordRole) |
| Loading Screen | Oui | Par défaut oui | Oui (via requiredDiscordRole) |
| Extensions (config) | Oui | Non | - |
| Administration | Oui | Non | - |
| Connector Health | Oui | Non | - |