![]() |
[TCL] Progressive Access System (version actuelle : 1.1) - Version imprimable +- Communauté Eggdrop (https://forum.eggdrop.fr) +-- Forum : Eggdrop et scripts (https://forum.eggdrop.fr/forumdisplay.php?fid=8) +--- Forum : Scripts (https://forum.eggdrop.fr/forumdisplay.php?fid=4) +---- Forum : Releases et support (https://forum.eggdrop.fr/forumdisplay.php?fid=20) +---- Sujet : [TCL] Progressive Access System (version actuelle : 1.1) (/showthread.php?tid=1464) Pages :
1
2
|
Progressive Access System (version actuelle : 1.1) - MenzAgitat - 21/11/2013 Introduction : Pour plus de facilité et de concision, nous appellerons ce script PrAcSys. PrAcSys est un concept original pour gérer les accès de vos utilisateurs d'une façon totalement différente. Il vous permet, entre autres choses, de contrôler qui a le droit ou non d'utiliser telle ou telle commande, et ce d'une façon beaucoup plus précise qu'en ne comptant que sur les seuls flags habituels que connaît Eggdrop. PrAcSys introduit 4 nouveaux types d'accès afin de répondre aux besoins des plus exigeants : évolutif, statique, restreint et paria. Vous pourrez par exemple grâce à l'accès évolutif, récompenser l'assiduité des utilisateurs et optionnellement pénaliser leur trop long absentéisme, en leur faisant respectivement gagner ou perdre des points d'accès. Ces points d'accès déterminent les commandes qu'ils pourront utiliser. Vous pourrez grâce à PrAcSys, protéger les commandes et binds de votre Eggdrop en leur attribuant un niveau, niveau qui déterminera le nombre de points d'accès requis pour les utiliser. Vous pourrez même empêcher un utilisateur d'utiliser la moindre commande grâce à l'accès paria, ou encore rendre des commandes "payantes" en points d'accès, si c'est ce que vous souhaitez. Vous pourrez en outre laisser des commentaires sur vos utilisateurs, qui seront consultables par ceux que vous aurez choisi d'autoriser, les admins par exemple. Vous pourrez ainsi expliquer pourquoi tel utilisateur s'est retrouvé avec un accès paria, afin d'une part de vous en souvenir par la suite, et d'autre part de permettre à d'autres personnes d'en connaître la raison. PrAcSys est une aide à la gestion des accès et ne prétend en aucun cas l'automatiser entièrement. Il vous faudra par exemple veiller à ce que les hosts associés aux handles soient pertinents et en ajouter manuellement si nécessaire, grâce aux commandes de partyline. Fonctionnalités :
Terminologie : qu'est-ce que... : PrAcSys
Accès évolutif
Accès statique
Accès restreint
Accès paria
Accès passe-droit
Points d'accès
Points de présence
Niveau d'une commande (ou d'un bind)
Coût d'une commande (ou d'un bind)
Installation, activation et mise en service :
Syntaxe des commandes : Toutes les commandes se déclinent en 3 versions : publique, par message privé, et en partyline. !access [nick ou handle] access <nick ou handle> <chan> .access <nick ou handle> <chan> Affiche des informations sur l'accès d'un utilisateur. Si l'utilisateur est connecté, le nick peut être spécifié plutôt que le handle. --- !setaccess <nick ou handle> <paramètres> setaccess <nick ou handle> <chan> <paramètres> .setaccess <nick ou handle> <chan> <paramètres> Modifie le statut de l'accès d'un utilisateur, ou le nombre de ses points d'accès. L'ordre des paramètres n'est pas important et certains sont cumulables. Si l'utilisateur est connecté, le nick peut être spécifié plutôt que le handle. Les paramètres peuvent valoir : +/-évolutif : ajoute ou enlève un accès évolutif +/-statique : ajoute ou enlève un accès statique +/-restreint : ajoute ou enlève un accès restreint +/-paria : ajoute ou enlève un accès paria [+/-]valeur : ajoute ou enlève des points d'accès, ou définit le nombre de points d'accès si aucun opérateur arithmétique n'est spécifié. -host xxx!xxx@xxxx.xxx : permet de spécifier un masque de host qui sera utilisé si la création d'un handle est requise pour appliquer un accès. Des variantes sont supportées pour les changements de statut. Par exemple +évolutif équivaut à +evolutif, +e, +evolutive et +E, et -restreint équivaut à -restricted, -restrict et -r. A vous de les découvrir toutes. Les points d'accès peuvent être des nombres décimaux. Exemples de syntaxe valide : !setaccess machin évolutif -host machin*!*@123456ABC.fbx.proxad.net !setaccess machin -P +30 !setaccess machin 10 Pour faciliter l'utilisation de la commande !setaccess, des alias sont disponibles. Reportez-vous à la configuration du script pour en prendre connaissance et les paramétrer à votre convenance. --- !protectcmd <commande ou bind> [-d] [niveau] [$coût] protectcmd <commande ou bind> [-d] [niveau] [$coût] .protectcmd <commande ou bind> [-d] [niveau] [$coût] Demande à Progressive Access System de prendre le contrôle de la commande ou du bind spécifié. Voici les différents types de binds que PrAcSys peut protéger : pub, pubm, join, rejn, part, sign, splt, topc, kick, nick, mode, msg, msgm, dcc, ctcp et ctcr. Le niveau déterminera qui peut utiliser la commande et doit être un nombre entier, positif ou négatif. Le coût, qui doit être précédé d'un $, détermine le nombre de points d'accès que coûtera l'utilisation de la commande ou le déclenchement du bind. S'il n'est pas spécifié, le coût sera par défaut de 0. Le coût peut être un nombre décimal ou une valeur négative. L'option -d sert à déprotéger la commande. Pour afficher le niveau de protection actuel d'une commande ou son coût, ne précisez ni le niveau, ni le coût. L'ordre des paramètres n'est pas important. Exemples de syntaxe valide : !protectcmd !meteo 5 !protectcmd !meteo !protectcmd -d !meteo !protectcmd {msg -|- meteo ::meteoscript::msg_meteo} 5 !protectcmd -d {msg -|- meteo ::meteoscript::msg_meteo} !protectcmd !randomkick 5 $0.5 --- !rebind rebind .rebind Demande à PrAcSys de reprendre le contrôle des commandes et binds qu'il doit protéger. Cela peut s'avérer nécessaire si vous avez rechargé un script. --- !comment <nick ou handle> [commentaire] comment <nick ou handle> <chan> [commentaire] .comment <nick ou handle> <chan> [commentaire] Affiche les commentaires laissés sur un utilisateur ou en ajoute un. Si l'utilisateur est connecté, le nick peut être spécifié plutôt que le handle. !comment <nick ou handle> del <n° du commentaire> comment <nick ou handle> <chan> del <n° du commentaire> .comment <nick ou handle> <chan> del <n° du commentaire> Efface le commentaire dont vous avez spécifié le numéro. Si l'utilisateur est connecté, le nick peut être spécifié plutôt que le handle. Syntaxe des commandes Tcl du protocole de communication inter-scripts : ::set_access <nom_du_script_appelant> <handle> <chan> <host> <modif_d_accès> [peut_produire_accès_<0] Permet à d'autres scripts de modifier le type d'accès d'un utilisateur ou le nombre de ses points d'accès. Aucun paramètre ne peut être vide sauf <host> dans certaines conditions. <host> ne sera utilisé que pour la création d'un handle si nécessaire et peut être laissé vide si l'opération consiste en une modification du nombre de points d'accès. <modif_d_accès> peut valoir +E -E +S -S +R -R +P -P ou un nombre précédé optionnellement de + ou - et sert à intervenir sur le type d'accès ou le nombre de points d'accès d'un utilisateur. [peut_produire_accès_<0] peut valoir 0 ou 1. Il vaut 1 par défaut s'il n'est pas spécifié. Si ce paramètre vaut 0, l'application d'une modification de points d'accès ne pourra pas produire un nombre négatif et s'arrêtera à une valeur plancher de 0; si l'utilisateur possède déjà un accès négatif, aucun changement ne sera effectué. La commande retourne 1 si l'opération s'est déroulée avec succès, ou 0 si elle a échoué. --- ::add_comment <nom_du_script_appelant> <handle> <chan> <commentaire> Permet à d'autres scripts d'ajouter des commentaires sur les utilisateurs possédant un handle. Aucun paramètre ne peut être vide. Le handle doit déjà exister au préalable. La commande retourne 1 si l'opération s'est déroulée avec succès, ou 0 si elle a échoué. --- ::get_access_pts <handle> <chan> Permet à d'autres scripts d'interroger le nombre de points d'accès d'un utilisateur. Aucun paramètre ne peut être vide. La commande retourne le nombre de points d'accès, qui peut être un nombre décimal ou négatif, ou "-" si aucune entrée n'existe pour cet utilisateur dans la liste d'accès de PrAcSys. Choses à savoir, questions qu'on se pose et autres paradoxes : Un utilisateur ne se trouvant sur aucun chan sur lequel PrAcSys est activé, ne pourra pas déclencher un bind protégé par PrAcSys à un niveau supérieur à 0. Il ne pourra par exemple pas utiliser une commande de niveau 1 par message privé . Une commande ou un bind protégé par PrAcSys à un niveau supérieur à 0, ne pourra jamais être déclenché par un utilisateur n'ayant pas au moins un accès évolutif ou statique et un nombre de points d'accès au moins équivalent au niveau de protection. Si un utilisateur se trouvant sur plusieurs chans gérés par PrAcSys tente d'utiliser une commande privée protégée, son niveau d'accès le plus petit sur tous ces chans sera pris en compte. S'il a un accès paria ou restreint sur un de ces chans, sa capacité à utiliser les commandes privées s'en verra également affectée. Lorsque vous comptez désinstaller un script dont une commande ou un bind est protégé par PrAcSys, pensez à d'abord enlever la protection avant. Si vous ne le faites pas, PrAcSys vous signalera un problème en essayant de localiser le script manquant, et tentera de restaurer les binds d'origine de ce dernier lorsque vous en supprimerez la protection. Le coût en points d'accès d'une commande ou d'un bind peut être négatif, ce qui aura pour effet d'ajouter des points au lieu d'en enlever. Du code est injecté dans les commandes de partyline et fonctions suivantes, afin d'en lier le fonctionnement à PrAcSys : setuser delhost deluser .deluser .-user .+host .-host reload et .reload La commande !setaccess utilise 4 flags personnalisés de l'Eggdrop pour représenter les 4 types d'accès, qu'elle définit toujours localement. C'est à dire qu'attribuer un accès paria à un utilisateur lui mettra le flag +P sur le chan concerné seulement. Mais savez-vous qu'il vous est également possible de définir ces flags globalement afin qu'ils prennent effet sur tous les chans à la fois ? Il vous faudra néanmoins le faire manuellement, que ça soit pour mettre ou pour enlever ces flags globaux, car bien que PrAcSys le supporte, il ne propose pas de le faire avec ses commandes. Reportez-vous à la documentation de la commande de partyline .chattr pour savoir comment faire. PrAcSys se déclare en tant que package sous le nom "PrAcSys" afin que d'autres scripts puissent vérifier sa présence avant d'utiliser les fonctions d'interopérabilité ::set_access, ::get_access_pts et ::add_comment. FAQ : Q- Pourquoi ? R- Pourquoi pas ? Annexe Technique : Structure de la base de données contenant les accès des utilisateurs : handle_hash {H 1 #chan1 {C 2 AP 3 PP 4 LLT 5 LPC 6} #chan2 {....}} 1 = Handle de l'utilisateur 2 = Statut connecté / déconnecté, peut valoir 0 ou 1. 3 = Nombre de points d'accès 4 = Nombre de points de présence 5 = Date du dernier point d'accès gagné. Peut valoir 0 si aucun point n'a jamais été gagné. 6 = Contiendra d'abord la date de la dernière fois que l'utilisateur a été vu sur le chan, puis la date du dernier point d'accès perdu pour cause d'absentéisme. --- Structure de la base de données contenant la table des binds protégés : niveau_de_protection coût {bind modifié par PrAcSys} {bind d'origine} --- Structure de la base de données contenant les commentaires sur les utilisateurs : handle_hash {handle 1 #chan1 {{timestamp 2 author 3 comment 4} {...}} #chan2 {{...} {...}}} 1 = Handle de l'utilisateur 2 = Date à laquelle le commentaire a été laissé. 3 = Auteur du commentaire 4 = Commentaire --- Structure de la base de données contenant les commentaires archivés sur des utilisateurs dont le handle a été supprimé : handle_hash {handle 1 del_timestamp 2 del_author 3 #chan1 {{timestamp 4 author 5 comment 6} {...}} #chan2 {{...} {...}}} 1 = Handle de l'utilisateur 2 = Date à laquelle le handle a été supprimé. 3 = Responsable de la suppression du handle (peut être un handle ou le nom d'un script) 4 = Date à laquelle le commentaire a été laissé. 5 = Auteur du commentaire 6 = Commentaire Changelog : Citation :v0.99 RC1 Téléchargement : Progressive Access System v1.1 Vous pouvez trouver une liste de mes autres releases ici Laissez vos commentaires / suggestions / rapports de bugs ici... RE: Progressive Access System (version actuelle : 0.99 RC1) - MenzAgitat - 03/12/2013 Le script a été téléchargé 15 fois et personne n'est encore revenu se plaindre. Néanmoins, je serais assez étonné qu'un projet comme celui-ci soit totalement exempt de bugs dès sa 1ère version. Etant donné qu'il s'agit d'une RC1, j'aurais apprécié quelques retours. Ca fonctionne bien chez vous ? C'est utile ? Aucune question ? Aucune clarification n'est nécessaire ? RE: Progressive Access System (version actuelle : 0.99 RC1) - CrazyCat - 03/12/2013 Moi je l'ai un peu testé mais avec le peu de monde sur mes canaux, je n'ai pas pu vraiment pousser et je n'ai trouvé aucun bug de surface. Mais je vais programmer une séance de tests, avec les copains des copains, et les copines de ces derniers ![]() RE: Progressive Access System (version actuelle : 1.0) - MenzAgitat - 06/12/2013 Devant l'absence totale de feedback, j'improvise une version finale dans mon coin, avec les quelques bugs que j'ai pu trouver et 2 ou 3 nouvelles fonctionnalités. Petite moralité au passage parce que j'ai envie et que je suis de mauvais poil ce soir : le partage à sens unique est une forme d'exploitation. Nouvelle version disponible : v1.0 Changelog partiel : Citation :v1.0 Téléchargement : Progressive Access System v1.0 Vous pouvez trouver une liste de mes autres releases ici Laissez vos commentaires / suggestions / rapports de bugs. RE: Progressive Access System (version actuelle : 1.0) - MenzAgitat - 08/12/2013 Je recommande de ne pas télécharger la v1.0, des bugs très gênants y sont présents. Si vous utilisez la v0.99RC1, gardez-la pour l'instant. Je publierai une version corrigée en début de semaine. RE: Progressive Access System (version actuelle : 1.01) - MenzAgitat - 10/12/2013 Nouvelle version disponible : v1.01 Changelog partiel : Citation :v1.01 Téléchargement : Progressive Access System v1.01 Vous pouvez trouver une liste de mes autres releases ici Laissez vos commentaires / suggestions / rapports de bugs. Problème Progressive Access System v1.01: - SaiTek - 24/12/2013 Bonjour, Je rencontre un petit problème. En effet je voudrait savoir comment puis-je faire pour que peut importe l'utilisateur qui rejoint le salon ai un accès statique à toutes les commandes Mais faire par utilisateurs c'est un peu long Merci pour votre aide ![]() RE: Progressive Access System (version actuelle : 1.01) - MenzAgitat - 26/12/2013 Merci de ne pas créer un thread séparé à chaque nouvelle question, il existe un post support officiel pour chacun des scripts que je publie. Un accès statique implique d'avoir un accès enregistré dans la userlist de l'Eggdrop. Définir le niveau de protection d'une commande ou d'un bind à 0 permettra à n'importe quel utilisateur, même n'ayant pas d'accès enregistré, de l'utiliser. RE: Progressive Access System (version actuelle : 1.02) - MenzAgitat - 31/12/2013 Nouvelle version disponible : v1.02 Changelog partiel : Citation :v1.02 Téléchargement : Progressive Access System v1.02 Vous pouvez trouver une liste de mes autres releases ici Laissez vos commentaires / suggestions / rapports de bugs. RE: Progressive Access System (version actuelle : 1.03) - MenzAgitat - 31/12/2013 Nouvelle version disponible : v1.03 Changelog partiel : Citation :v1.03 Téléchargement : Progressive Access System v1.03 Vous pouvez trouver une liste de mes autres releases ici Laissez vos commentaires / suggestions / rapports de bugs. RE: Progressive Access System (version actuelle : 1.04) - MenzAgitat - 11/03/2014 Nouvelle version disponible : v1.04 Changelog partiel : Citation :v1.04 Téléchargement : Progressive Access System v1.04 Vous pouvez trouver une liste de mes autres releases ici Laissez vos commentaires / suggestions / rapports de bugs. RE: Progressive Access System (version actuelle : 1.04) - SaiTek - 04/06/2014 Bonjour, Je rencontre un problème avec la dernière version du tcl. [13:09:47] <@Myster> !protectcmd !oracle statique 20 Rien ne se passe, une seule commande fonctionne et c'est la commande !access J'ai bien fais le chanset pourtant :/ Merci pour votre aide RE: Progressive Access System (version actuelle : 1.04) - MenzAgitat - 10/06/2014 Avec les réglages par défaut, la commande !access peut être utilisée par tout le monde (du moins pour consulter son propre accès), alors que !protectcmd est réservée aux masters et owners de l'Eggdrop : tcl
Il est donc probable que ton Eggdrop ne te reconnaisse pas comme tel. Vérifie que tu t'es bien créé un handle dans la liste d'utilisateurs de l'Eggdrop, et qu'il t'a bien reconnu. RE: Progressive Access System (version actuelle : 1.04) - SaiTek - 10/06/2014 Bonjour, Merci pour la réponse, oui il me reconnais bien en tant que Owner. Sauf que quand je démarre l'eggdrop, j'ai le message comme quoi user_access.db n'existe pas, alors que le chemin est correct,j'ai tenté de le créé à la main, mais ça fonctionne pas :S. Pourtant sur la version avant cette version du script tcl, je n'avais pas ce problème de commande qui fonctionnai pas ^^ Merci encore OMG ! Ca fonctionne si je ne me mets pas Oper, reste plus qu'a ajouté mon host de netadmin, merci beaucoup ! ![]() RE: Progressive Access System (version actuelle : 1.05) - MenzAgitat - 28/07/2014 Nouvelle version disponible : v1.05 Changelog partiel : Citation :v1.05 Téléchargement : Progressive Access System v1.05 Vous pouvez trouver une liste de mes autres releases ici Laissez vos commentaires / suggestions / rapports de bugs. |