[plugin] plnExtendedJurisdiction - Juridiction étendue
Ce plugin, plutôt technique, a pour objectif de gérer une "brique de base" de gestion de la juridiction. Il embarque :
- La possibilité de créer et de gérer des comptes utilisateur
- La possibilité d'associer des profils (droits) à ces comptes
- Un formulaire de connexion côté "site"
- La possibilité de fusionner (fonctionnellemment parlant) les comptes du plugin avec ceux, standards, de pluXml
- La possibilité d'injecter les comptes en masse via fichiers CSV
- Une aide complète expliquant comme l'utiliser et l'interfacer avec d'autres plugins
- Une page côté "site" permettant aux utilisateurs de voir/modifier leurs mots de passe
- Un service d'affichage d'une page d'erreur de type "accès interdit" utilisant aisément par d'autres plugins
Seul, il n'a pas grand intérêt. Sa grande force est de permettre à d'autres plugins de s'adosser à ses services de gestion
des habilitations. Plusieurs intérêts majeurs :
- La sécurité liée à la gestion de la juridiction est toute entière extérieure aux autres plugins et située à un seul endroit : il suffit d'auditer le plugin plnExtendedJurisdiction pour s'assurer que la sécurité est correctement gérée.
- L'allégement de l'écriture des plugins ayant besoin de gestion de juridiction : plus besoin de s'en occuper, c'est géré par plnExtendedJurisdiction !
- Et surtout, une homogénéisation de la juridiction transverse aux plugins l'utilisant (si on a 3 plugins ayant besoin de juridiction, pas besoin de créer 3 méthodes différentes réclamant 3 créations de comptes, etc.).
Le plugin s'interface très facilement avec d'autres plugins : il offre un éventail de services sous forme de méthodes statiques.
Lien de téléchargement : plnExtendedJurisdiction v1.0.4
Si vous voulez le voir à l'oeuvre, il est utilisé (facultativement) par le plugin plnKikan et obligatoirement par le plugin plnPrivatePages.
Quelques captures d'écran :
- Les pages d'administration :
- La page de config :
- Un (court) extrait de la page d'aide :
A noter : ce plugin nécessite le plugin plnStaticPages
- La possibilité de créer et de gérer des comptes utilisateur
- La possibilité d'associer des profils (droits) à ces comptes
- Un formulaire de connexion côté "site"
- La possibilité de fusionner (fonctionnellemment parlant) les comptes du plugin avec ceux, standards, de pluXml
- La possibilité d'injecter les comptes en masse via fichiers CSV
- Une aide complète expliquant comme l'utiliser et l'interfacer avec d'autres plugins
- Une page côté "site" permettant aux utilisateurs de voir/modifier leurs mots de passe
- Un service d'affichage d'une page d'erreur de type "accès interdit" utilisant aisément par d'autres plugins
Seul, il n'a pas grand intérêt. Sa grande force est de permettre à d'autres plugins de s'adosser à ses services de gestion
des habilitations. Plusieurs intérêts majeurs :
- La sécurité liée à la gestion de la juridiction est toute entière extérieure aux autres plugins et située à un seul endroit : il suffit d'auditer le plugin plnExtendedJurisdiction pour s'assurer que la sécurité est correctement gérée.
- L'allégement de l'écriture des plugins ayant besoin de gestion de juridiction : plus besoin de s'en occuper, c'est géré par plnExtendedJurisdiction !
- Et surtout, une homogénéisation de la juridiction transverse aux plugins l'utilisant (si on a 3 plugins ayant besoin de juridiction, pas besoin de créer 3 méthodes différentes réclamant 3 créations de comptes, etc.).
Le plugin s'interface très facilement avec d'autres plugins : il offre un éventail de services sous forme de méthodes statiques.
Lien de téléchargement : plnExtendedJurisdiction v1.0.4
Si vous voulez le voir à l'oeuvre, il est utilisé (facultativement) par le plugin plnKikan et obligatoirement par le plugin plnPrivatePages.
Quelques captures d'écran :
- Les pages d'administration :
- La page de config :
- Un (court) extrait de la page d'aide :
A noter : ce plugin nécessite le plugin plnStaticPages
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
je suis plutôt utilisateur de pluxml que développeur, donc je suis nul et je ne comprends comment faire pour utiliser ton plugin avec un autre plugin.
Comment je peux intégrer ton plugin dans le plugin "adhésion" pour gérer les connexions ??
Merci
Jol5926
En fait, si j'ai créé le plugin plxExtendedJurisdiction, c'est parce que justement j'ai remarqué qu'il y a plusieurs plugins proposés pour pluXml qui offrent une sorte de gestion de comptes privés (adhesion, mais aussi tous les plugins qui intègrent des mots de passe pour accéder à telle ou telle partie du site). Le problème, c'est que chacun de ces plugins gère son truc dans son coin, ainsi si on veut pouvoir profiter de plusieurs de ces plugins on se retrouve éventuellement à devoir gérer les habilitations à de nombreux endroits.
Dans mes besoin de plugins personnels (plnPrivatePages, mais aussi plnKikan et bientôt plnCalendrier) je souhaitais pouvoir gérer les habilitations de manière unique. J'ai donc décidé de créer un plugin dédié à cela, qui offrirait des services de gestion des habilitations pour les plugins qui le voudraient (c'est donc au développeur du plugin d'intégrer plnExtendedJurisdiction, un utilisateur ne pourra pas le faire).
Maintenant que mon plugin est fonctionnel, je l'utilise pour l'ensemble des mes plugins qui ont besoin de gestion des habilitations.
Bien entendu, cela veut dire que, pour conserver le côté "unifié" de cette gestion des habilitations, il faudrait que tous les autres plugins ayant besoin du même genre de service s'appuient dessus. Bref, que "adhesion" s'appuie sur plnExtendedJurisdiction.
Je ne pense pas que le mainteneur de "adhesion" va s'amuser à changer son code pour utiliser plnExtendedJurisdiction (même si ça me ferait plaisir ! ^^). Bref, à ce jour, je ne vois pas bien comment faire, d'autant que je ne connais pas du tout le fonctionnement interne de "adhesion" (en fait, au départ j'avais tenté de me brancher sur "adhesion" mais je débutais sur pluXml et je n'avais réussi à comprendre comment le faire fonctionner, je suis donc parti sur ma propre solution).
comment faire pour injecter un fichier ?
J'ai 21 personnes à entrer.
J'ai vu dans l'admin "injecter un fichier"
Merci
Jol5926
est-il possible d'avoir le fichier des comptes en xls ou numbers (mac) plutot qu'en ods ?
Oups, il me semblait avoir écrit un blabla d'aide pour l'injection... Je réalise que ce n'est pas le cas : pas bien !
En l'occurrence (et de mémoire), il s'agit d'un fichier csv dont la première ligne doit contenir les entêtes des colonnes et les lignes suivantes les personnes à injecter (soit 22 lignes en tout dans ton cas).
Les noms des colonnes doivent être nommés comme suit : "login", "password", "profil", "active"
L'ordre des colonnes est indifférent, et on peut mettre d'autres colonnes sans rapport au milieu sans problème.
Le délimiteur de champ doit être ",", ";" ou "|" au choix. Si un caractère est utilisé comme délimiteur, il ne doit pas se retrouver ailleurs.
Dis-moi si ça marche !
Pour l'export, je prévois de faire du csv de base (je ne peux pas créer de template xls ou mac, n'ayant ni mac ni windows).
ok pour l'export en csv !
je ne peux rien faire en ods
En gros, et sauf cas particulier, tu veux que tes comptes soient actifs. Ou bien tu mets une colonne "active" en mettant tout à 1, ou ben tu ne mets pas de colonne (par défaut, c'est mis à 1).
Seule la colonne "login" est obligatoire. Si "profil" n'est pas fourni, c'est mis à blanc. Si "password" n'est pas fourni, c'est mis à "1234".
J'ai écrit l'aide, je publie la version modifiée ce soir.
Merci
Ca fonctionne super bien
Nouvelle version, à télécharger sur le premier message du fil.
Changelog :
je viens d'installer ta nouvelle version et petit bug.
Le message "contacter votre administrateur" apparait tout de suite et lorsqu'on clique sur "mot de passe oublié" il disparait. Je pense que cela devrait être l'inverse.
Quand on clique sur "mot de passe oublié" le message disparait et quand on clique de nouveau sur "mot de passe oublié" le message réapparait et comme ça en boucle.
Le principe serait que le message apparaisse uniquement si l'internaute clique sur "mot de passe oublié" !
J'ai désactivé le plugin, réinstallé le plugin, activé le plugin et ça fonctionne
Merci Gari
j'ai créé un espace privé en utilisant ton plugin et je viens de m'apercevoir que lorsque je me connecte dans mon espace privé, je ne vois plus les commentaires.
Dès que je me déconnecte, j'ai à nouveau accès aux commentaires.
Quand on est connecté, si on créé un commentaire, il n'est pas visible. Ce même commentaire n'est toujours pas visible si on se déconnecte.
Jol5926
@Jol : le bug a été résolu, il était dans plnPrivatePages (cf le fil correspondant)
La version v1.0.4 est disponible (cf premier message du fil). Cette version embarque la gestion du "se souvenir de moi" ou "rememberme". Cela permet aux utilisateurs qui le choisissent de rester connectés même après que la session soit terminée. Cela évite d'avoir à se reconnecter. Bien entendu, cela entraîne quelques faiblesses de sécurité, étant donné que c'est un cookie qui permet de gérer cette reconnexion et qu'un vol de cookie est si vite arrivé... Il est à noter que cette option "rememberme" n'est pas obligatoire, et est par défaut inaccessible : l'administrateur doit spécifiquement l'accepter dans la page de configuration du plugin.
Pour souhaiter profiter de l'option de rememberme, l'utilisateur doit aller dans sa page de profil (en cliquant sur son nom une fois connecté) et ensuite cliquer sur la case à cocher correspondante.
Le changelog :
Il est à noter que j'ai rédigé l'ensemble des cas d'utilisation (product backlog) correspondants, si quelqu'un veut voir... Le code est commenté avec les références des cas d'utilisation correspondants chaque fois que c'est pertinent (sous la forme, par exemple, US01-RG01, ce qui signifie Règle de Gestion numéro 1 du Cas d'Utilisation numéro 1). Donc, si quelqu'un veut voir comment j'ai implémenté la US01-RG01, il suffit de chercher dans le code les références "US01" ou "US01-RG01".
Si vous avez des remarques, notamment sur la pertinence de l'algo mis en œuvre au regard de la sécurité, je suis preneur !
Gari