Permissions ACE
Comment donner accès à une ressource d'administration sans ouvrir la porte à tout le monde.
Le principe
FiveM gère les droits avec deux notions : les principaux (un joueur, ou un groupe) et les ACE (une autorisation nommée). On rattache un joueur à un groupe, puis on autorise le groupe sur une permission précise.
Tout se déclare dans server.cfg, et se recharge au redémarrage du serveur.
Rattacher une personne à un groupe
add_principal identifier.license:VOTRE_LICENCE_ICI group.admin
L'identifiant license: d'un joueur s'obtient en jeu avec la ressource d'administration de ton framework, ou dans les logs de connexion du serveur. Une ligne par personne.
Autoriser le groupe sur la ressource
add_ace group.admin command.bda allow
Le nom de la permission est propre à chaque ressource et indiqué sur sa page. Tout ce qui n'est pas autorisé reste refusé : on autorise ce qu'on veut donner, on n'a rien à interdire.
Avec ESX Legacy
ESX Legacy rattache tout seul chaque joueur au principal group.<son groupe ESX> quand son personnage se charge. Un joueur du groupe ESX admin est donc déjà dans group.admin : il suffit d'autoriser le groupe, sans add_principal.
Si ton server.cfg contient add_ace group.admin command allow, ce groupe a déjà toutes les permissions qui commencent par command..
Vérifier
En console serveur, test_ace répond sans ambiguïté pour un principal et une permission donnés :
test_ace group.admin command.bda
test_ace identifier.license:VOTRE_LICENCE_ICI command.bda
La console indique si l'accès est autorisé ou refusé. Teste bien le joueur et le groupe : un joueur peut appartenir à un groupe qui n'a pas la permission.
Les erreurs classiques :
- l'identifiant est recopié sans le préfixe : il faut exactement
identifier.license:...; - le fichier modifié n'est pas celui que le serveur charge, par exemple une copie locale alors que l'hébergeur en utilise une autre ;
- la permission est mal orthographiée : elle est alors simplement refusée, sans message.