Plugin ExtraRights

Présentation du plugin

Le plugin extrarights, ou plugin d'administration multi-serveurs, est un composant d'administration du bot définissant les droits des personnes se connectant au serveur de manière plus poussée que le plugin basicrights. Il permet notamment de gérer de manière simple et puissante les utilisateurs, via la notion de groupes. Il permet aussi notamment de gérer plusieurs serveurs en même temps, en utilisant une liste d'utilisateurs partagée.

Explications

Droits

Cette partie concerne le plugin à partir de la version 0.2.5 Carlo.

Ce plugin permet au bot de posséder un système de droits extensible étudié dans le but d'être accessible et (en priorité) puissant. Ce système supporte théoriquement le multi-serveur, c'est à dire que plusieurs bots LeelaBot répartis sur plusieurs serveurs peuvent utiliser une unique base de données d'utilisateurs, partagée et actualisée entre eux.

Les droits sont représentés par des chiffres délimités entre 0 et 100 (en théorie, on peut aller au dessus, mais les commandes importantes (tel que la commande !rcon) sont configurées sur le niveau 100).

Lorsqu'un client se connecte, le bot cherche si il a des droits, et là se proposent 2 solutions :

  • Si il le trouve dans la liste des personnes (fichier réglable dans conf/plugins/extrarights.ini) ayant des droits, il lui donne les droits indiqués dans ce fichier.
  • Sinon, il lui donne le droit de base 0.

Le système de gestion des utilisateurs inclut la notion de groupes. Les groupes sont des ensembles d'utilisateurs ayant les mêmes droits.

En effet, le LeelaBot ne permet pas de régler les droits des utilisateurs directement, mais propose de passer par les groupes. Ce système est peu pratique pour les serveurs où chaque utilisateur a un niveau de droits différent (pour ce cas là, utilisez plutôt le plugin basicrights), mais montre sa puissance sur les serveurs où il y a plusieurs utilisateurs avec des niveaux de droits liés (tels que les serveurs de clans).

Pour ce dernier exemple, il devient très facile de changer rapidement le niveau de droits de tous les utilisateurs d'un même groupe via une unique et simple commande, ce qui vous permet de gagner en efficacité. D'ailleurs, avec le support du multi-serveurs, si vous changez les droits d'un groupe sur un serveur, ce changement est répercuté sur tous les autres (dans un délai d'une minute, délai de rechargement des listes de droits).

Le système de gestion de droits repose aussi sur la notion d'utilisateurs. Les utilisateurs sont en fait les personnes qui possèdent les droits (et qui sont contenues dans les groupes), et qui possèdent donc un ou plusieurs GUIDs (un par serveur). Leur nom est totalement indépendant du nom qu'ils possèdent sur le serveur, et d'ailleurs il est recommandé pour les nom d'utilisateurs de se tenir aux caractères alpha-numériques (abcdefghijklmnopqrstwxyz0123456789) plus l'underscore “_”.

Les GUIDs, générés par le serveur Urban Terror, sont de longues chaînes de caractères uniques qui identifient un joueur sur le serveur. Elles sont générées en fonction du client et du serveur, et donc changent d'un serveur à l'autre. Ils servent au bot pour identifier les clients indépendamment de leurs alias, car cette chaîne reste la même d'une connexion à l'autre (hormis si l'on change le serveur ou le client).

Pour résumer schématiquement, le système de droits pourrait se résumer à ça :

  Théorie :                        |  Exemple :
                                   |  
  [Système de droits]              |  [Système de droits]
                                   |  
  -> Groupe 1                      |  -> admin
     -> Utilisateur 1              |     -> linkboss
        -> GUID 1                  |        -> [WFAYMDGTRKB947TIRKXB7D06P0A41OV8]
        -> GUID 2                  |        -> [97DB1YWMK5SYJI4UZCVW2K3NEQ2ESM6F]
        -> GUID 3                  |        -> [AZI30F6PVSYW8OWLOUB72XT51GPLYSI6]
                                   |  
     -> Utilisateur 2              |     -> sonic
        -> GUID 4                  |        -> [XGZK05Q5PLYR7TBWJ91L387CXYWMZTU6]
                                   |  
  ->Groupe 2                       |  -> moderateurs
     -> Utilisateur 3              |     -> supermario
        -> GUID 5                  |        -> [R567L7IDTG0OICRTUVZB16YNS3ZQ2KUS]
        -> GUID 6                  |        -> [T4UA9D9PWC1MVIQ33NHKLJ8QGFH0BF07]

Note : les pseudos pris ici sont pris totalement au hasard et n'engagent à rien. Les GUID sont ici totalement aléatoires, et probablement invalides.

Configuration du plugin

;Chemin vers la liste des administrateurs à charger par défaut
adminfile=conf/admin.conf;

Il y a seulement le chemin du fichier d'admin, adminfile était anciennement dans le leelabot.ini, mettez le même pour tous vos bots pour pouvoir avoir vos guid, groupes et user rassembler pour tous vos serveurs.

Utilisation du système

Inititalisation

Si vous venez d'installer le bot, avant de vous servir du système de droits, vous devez d'abord l'initialiser. Normalement cette étape a déjà été faite, avec la commande !setadmin. Si vous ne l'avez pas encore fait, faites-le maintenant avec la commande :

!setadmin <user> <password>

Note : Pour que cette commande soit effective, il faut que la variable firstrun du fichier de configuraion de LeelaBot (conf/leelabot.ini) soit réglée à 1.

Où ici user représente l'utilisateur à créer et où le mot de passe est celui renseigné dans la configuration.

Si vous avez rentré ces infos correctement, le bot est censé vous l'indiquer. Voilà, vous avez maintenant tous les droits sur le bot, vous pouvez maintenant gérer les droits comme vous l'entendez.

Ajouter un groupe

Pour ajouter un groupe, il suffit d'utiliser la commande suivante :

!addgroup <name> <level>

Avec comme paramètres :

  • <name> : le nom du groupe, de préférence en caractères alpha-numériques (abcdefgijklmnopqrstuvxyz0123456789) plus l'underscore “_”.
  • <level> : Le niveau de droits associé au groupe (où 100 est par défaut le niveau maximum, permettant l'accès à la commande !rcon, donc équivalant à l'accès au RCon).

Supprimer un groupe

Pour supprimer un groupe, il suffit d'utiliser la commande suivante :

!rmgroup <name>

Avec comme paramètres :

  • <name> : le nom du groupe à supprimer.

Ajouter un utilisateur

Pour ajouter un utilisateur, il faut utiliser la commande suivante :

!adduser <name> <group> <pass>

Avec comme paramètres :

  • <name> : le nom de l'utilisateur à créer (il est conseillé de n'utiliser que des caractères alphanumériques plus l'underscore “_”)
  • <group> : le groupe auquel est attaché l'utilisateur. Ce groupe doit bien évidemment exister.
  • <pass> : le mot de passe de l'utilisateur.

Supprimer un utilisateur

Pour supprimer un utilisateur, il faut utiliser la commande suivante :

!rmuser <name>

Avec comme paramètres :

  • <name> : le nom de l'utilisateur à supprimer.

Ajouter un GUID - Authentification

Note : Les deux commandes !addguid et !auth sont identiques dans leur fonctionnement.

Pour vous authentifier la première fois sur le bot (une fois qu'un admin a créé votre utilisateur), il suffit d'utiliser cette commande :

!addguid <name> <passwd>
ou
!auth <name> <passwd>

Avec les paramètres suivants :

  • <name> : votre nom d'utilisateur
  • <passwd> : le mot de passe qui a été réglé par l'admin (il est censé vous le donner).

Note : cette commande n'est en temps normal à utiliser qu'une seule fois par serveur, ensuite le bot détectera votre GUID (d'où le nom de la commande !addguid) et vous donnera les droits automatiquement.

Note 2 : L'affichage du mot de passe de votre compte à vue publique est une faille de sécurité. Pour l'éviter, utilisez auparavant la commande !muteme qui cachera tous vos messages à la vue des autres clients du serveur. Utilisez de nouveau !muteme pour vous demuter.

Annexe

Commandes

Commande Information Niveau (par défaut)
!setadmin <user> <password> Ajoute le premier admin 0
!addgroup <name> <niveau> Ajoute un groupe 90
!rmgroup <name> Supprime un groupe 90
!adduser <name> <group> <pass> Ajoute un utilisateur 80
!rmuser <name> Supprime un utilisateur 80
!grprights <name> <niveau> Change le niveau groupe 90
!changegrp <user> <groupe> Change le groupe d'un utilisateur 80
!listgroups Liste les groupes d'utilisateurs 80
!listusers Liste les utilisateurs 80
!listguids <user> Liste les GUIDs d'un utilisateur 80
!muteme Se muter pour s'auth discretement 0
!auth <user> <pass> Permet de s'authentifier et d'ajouter son guid 0
!addguid <user> <pass> Alias de auth 0
!rmguid <user> <guid> Permet de supprimer le GUID d'un utilisateur 80
!listadmins Donne la liste des admins connectes 10
plugin_extrarights.txt · Dernière modification: 2010/04/08 01:07 par srwiez
 
 
©2008 Another cool website by 80KV