Re: API Autoriser ! ;)
YannX SPIP <[email protected]>
| Newsgroups | gmane.comp.web.spip.devel |
|---|---|
| Message-ID | <DB6PR0101MB214950C62B858A717D84587DEEE90@DB6PR0101MB2149.eurprd01.prod.exchangelabs.com> |
Le 21/08/2016 à 16:31, David Fredette a écrit : >> Le 21 août 2016 à 10:17, YannX SPIP <[email protected]> a écrit : >> >> PS mais j'avoue n'avoir encore que "relu", et pas "etudié" ton travail. >> j'ai donc certainement l'opportunité de changer d'avis > Ça serait peut-être bien de commencer par la ... > > A la lecture de tes réponse, une grosse partie à été écrit pour rien et ne s'applique pas du tout à ma proposition !! ;). Premiere reflexion : ta structure $table_des_droits me parait avoir une vue trop restrictive et n'est pas extensible ; je dis cela en vieil habitué des structurations de BDD (normalisation), la sélection-firltrage peut s'opérer par SQL (donc plus rapidement, surtout sur de grosses populations d'objets et/ou d'individus) sans avoir à décoder l'array sérialisé "droits" ; par contre, je reprends ton idée de "libellé" du droit pour mieux expliquer son usage (cela pourrait être inscrit dans l'initialisation des constantes du plugin pour reprendre les droits standard, puis étendu par un autre pipeline pour mise à dispositon des plugins qui ne voudraient pas ecrire dans la BDD directement !) Cette structure de BDD, sous réserve de définir une fois dans le core les héritages de hiérarchie entre droits, satisfait à la reprise des fonctionnements existants, et des droits "0minirezo".... Mais en-dehors des fonctions d'interface d'administration liant à la BDD /et avant de relire le code/ pas d'autres changements fonctionnels ; il reste juste a voir comment ajouter le traitement des exceptions temporaires dans la BDD (cf. le cham "options". Je ne comprends pas bien la Phase 1-6 "mettre en place un systeme de fonction etendue" En regardant quelque peu le code de SPIP et des plugins, je crois pouvoir affirmer que le systeme d'un autoriser_bdd() que j'evoque reste totalement compatible en co-existence avec l'existant (dès lors que les dev-core acceptent de rajouter deux lignes dans le code de ecrire/inc/autoriser[114] pour tester l'existence de autoriser_bdd_dist() et le OR sur les deux resultats), y compris avec des plugins non encore connus, ce qui repond à l'objection de JLuc. En outre le stockage en BDD d'une table spip_acl (sur le modèle des tables de liens déja souvent utilisé en SPIP) telle que je l'ai définie peut parfaitement se satisfaire ensuite me semble-t-il d'une mise en cache de fonctions d'autorisations pré-compilées pour accélerer le systeme, ce qui eviterait donc une surchagee de la BDD à l'exploitation... -- YannX http://www.spippourlesnuls.f