Re: API autoriser

Gilles Vincent <[email protected]>
Newsgroups gmane.comp.web.spip.devel
Message-ID <CA+Q4CmtpFe0KDdFvtpcCP5XQMPWcJuGeY9K99nvxY+wFzcrKKQ@mail.gmail.com>
Bonjour, ça me semble compliqué ce que tu proposes.
Il me semble que l'ajout de statuts personnalisés peut se faire dans SPIP
en surchargeant le fichier ecrire/base/objets.php
(comme n'importe quel plugin) :)
Est-ce que j'ai tord ?

2015-11-24 18:52 GMT+01:00 David Fredette <[email protected]>:

> Le 2015-11-24 à 11:42, Gilles Vincent <[email protected]> a écrit :
>
> > Bonjour,
> >
> > il n'y a pas de tel groupe à ma connaissance.
> > Tu es sur la bonne liste de diffusion si tu veux communiquer par mail.
> > Sinon, tu peux aussi échanger sur irc.spip.net avec marcimat, Cerdic,
> etc..
> > Quelles sont tes idées ?
> >
>
> Ok… Je me lance avec mes réflexion actuel sur l’API autoriser. D’abord
> avec mes constats au sujet de l’API puis mes réflexions…
>
> Comme j’arrive dans le sujet, il est possible qu’il y a des éléments
> la-dedans qui auront déjà été discuté par ceux qui discute sur cette liste
> depuis longtemps, soyez indulgent de ce côté ! ;)
>
> Il est également possible que mes constats soient faux, n’hésitez pas a me
> faire par de fonctionnalités que j’aurais manqué au travers de mes
> différentes lectures sur le sujet…
>
> Et finalement, si jamais les besoins que moi je ressens pour faire évoluer
> l’API autoriser de spip sort des besoin de spip lui-même et sont des
> besoins qui sont vraiment plus spécifique à mes besoins, n’hésitez pas à me
> le dire, et je me ferais un plugin pour surcharger cela et utilisera bien
> celui qui veut a partir de là ! ;)
>
> Mes constats sur l’API Autoriser actuellement…
>
> Dans le contexte ou on gère 3 statut de base (0minirezo, 1comite, 6forum)
> et que tout nouveau statut d’auteur est de base considéré comme un statut
> visiteur, l’API actuel fonctionne relativement bien… Mais, comme je l’ai
> dis précédemment, dans un contexte ou je me sers de SPIP pour gérer des
> intranet, ces 3 statuts sont nettement insuffisant et ne permet pas d’avoir
> beaucoup de souplesse à moins de se mettre a écrire pleins de fonction
> et/ou de surcharger des fonctions actuel…. Il est d’ailleurs très difficile
> avec son concept actuel de créer une interface dans l’espace privé pour
> pouvoir créer de nouveau statut et d'assigner a ce statut des droits
> spécifique, les droits n’existant pas autrement que par création de
> fonctions…
>
> Si je prends exemple au niveau de mes intranet, si dans mon intranet, j’ai
> des objet factures, clients, commandes, formulaires, etc, etc, et que je
> souhaite déléguer a une personne la gestion des utilisateurs pour qu’il
> puisse gérer les droits d’accès pour créer un droit « comptabilité » et
> assigner des droits sur les objet factures sans que cette personne ai accès
> au reste, c’est impossible de créer ce droit « comptabilité » sans passer
> par de la programmation…
>
> Donc pour pouvoir arriver a créer des statut d’auteur « personnalisé » il
> faut commencer par être en mesure d’avoir une liste des droits disponible
> pour chaque objet. La première idée qui me vient donc en tête, c’est
> d’ajouter cela lors de la déclaration des objets par le pipeline
> declarer_tables_objets_sql …
>
> Si dans cette table on ajout a notre objet quelque chose de ce genre :
> $tables[‘spip_mon_objet_quelconque’]
>         … blabla définition de la table …
>         … blabla les statut pour l’objet …
>         … blabla autres …
>
>         ‘dtoits_autorisations’ => array(
>                                                         ‘creer’ => array(
>
>       ‘texte_de_langue’ => ‘fichier de langue:string’,
>
>       ‘restreindre_rubrique’ => ‘oui ou non’ /* Pour décider si pour ce
> droit, on peut choisir un secteur ou si c’est le droit point final */
>
>       ‘autres_options_qui_pourait_etre_interessante’ => ‘…'
>
>       ),
>                                                         ‘modifier’ =>
> array(
>                                                                         …..
>
>       ),
>                                                         etc….
>                                                 );
>
>
> En faisant cela, il devient possible d’écrire une fonction du genre :
>
> liste_droit_objet($objet)
>
> et ainsi récupérer une liste de droits disponible pour un objet en
> particulier…
>
> Cela laisse même la possibilité pour un autre plugin qui aurait besoin
> d’ajouter un droit sur un objet existant pour xyz raison, d’aller l’ajouter
> en passant par le pipeline déclarer_tables_objets_sql …
>
> Dans la fonction liste_droit_objet, on pourrait introduire certains droits
> de base ou exceptionnel comme webmestre ou des éléments de ce genre…
>
> Ensuite pour compléter cette gestion de droits, j’ajouterait une table,
> par exemple spip_statut_auteur … qui se définirait a peu près comme ceci :
>
> id_statut
> Titre
> libelle (le nom du droit, mais qui sera associé au statut de l’auteur… A
> moins qu’a partir de là, les droits des auteurs passent par une table de
> liens… Ça permettrait même qu’un utilisateur ai plus d’un droit… Mais au
> niveau de la structure de spip, l’utilisation du champ statut ne doit pas
> être si simple a remplacer…  )
> liste_des_droits qui serait un peu comme les meta de SPIP, un serialize
> (c’est comme ça qu’on dit ?? ;P ) des droits par objet que ce nouveau
> statut d’auteur peut faire …
>
>
> En gros, la base de mon idée est là… plutôt que d’avoir un paquet de
> fonction éparpillé un peu partout pour gérer les droits sur les objets
> spip, on pourrait avoir une seule fonction qui vérifie si la personne a un
> droit en fonction de son (ou ses) statut, et l’ensemble des droits possible
> pourrait être assigné a des nouveau statuts… On peut inclure les statuts de
> base (0minirezo, 1comite, 6forum)de spip actuel déjà dans la table par
> défaut, et après, on peut créer autant de statut que l’on veut en décidant
> des droits assigné a chaque statut…
>
> Si cette idée allume quelque choses et est d’intérêt pour le coeur de
> SPIP, je suis partant pour écrire le code qui va avec, mais j’aimerais bien
> avoir de l’aide pour choisir les bons termes, les bon nom de fonction, etc,
> afin que celui puisse être éventuellement intégré au coeur de SPIP…
>
> Si cette approche n’est pas intéressante pour le Core, alors je le ferais
> comme plugin, mais s’il y en as qui ont des suggestions pour la
> nomenclature, je suis preneur ! :)
>
>
> --
> David Fredette
>
> _______________________________________________
> liste: http://listes.rezo.net/mailman/listinfo/spip-dev
> doc: http://www.spip.net/
> dev: http://trac.rezo.net/trac/spip/
> irc://irc.freenode.net/spip
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.