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.