Je viens de faire le test en SPIP 192d.
-----Message d'origine-----
De : spip-zone-commit-bounces@rezo.net [mailto:spip-zone-commit-
bounces@rezo.net] De la part de kent1@arscenic.info
Envoyé : jeudi 28 août 2008 14:04
À : spip-zone-commit@rezo.net
Objet : [Spip-zone-commit] r22280 - /_plugins_/_test_/spip-listes/spip-
listes_1_9_3/inc/spiplistes_api_presentation.phpAuthor: kent1@arscenic.info
Date: Thu Aug 28 14:03:27 2008
New Revision: 22280Log:
1. utiliser autoriser webmestre plutot que l'affreux if($connect_id_auteur
== 1)... Pourquoi seul le 1 a le droit? => ca ne devrait pas casser en
1.9.2 ... à confirmer...
En 192d, ca ne donne plus accès au menu de maintenance à l'admin (par
exemple).
Sauf erreur (d'après les commentaires en script SPIP dist)...
Le 3' paramètre à transmettre à autoriser*() et l'id de l'objet sur lequel
on désire avoir le droit d'accès (id de l'article, ...). Le 4' est l'id de
auteur_session, ou tableau.
Donc :
+ autoriser('webmestre','',$connect_id_auteur));
Devrait plutôt être :
+ autoriser('webmestre','', 1,$connect_id_auteur));
Petit détail :
+ $flag_autorise = ($connect_statut == "0minirezo") &&
(autoriser('webmestre','',$connect_id_auteur));
autoriser_webmestre() vérifie lui aussi ($connect_statut == "0minirezo"). Il
est donc inutile de le demander ici.
Ainsi, simplifions en :
+ $flag_autorise = autoriser('webmestre','', 0, $connect_id_auteur);
Ici, id_objet est 0, mais il peut-être 1 (le webmestre a droit à tout, mais
à vérifier, je n'ai pas tracé tous les scripts)
Donc :
+ $flag_autorise = autoriser('webmestre','', 0, $connect_id_auteur);
Peut devenir tout simplement, pour la session en cours, si pas de gestion
spécifique de rubrique ni d'article :
+ $flag_autorise = autoriser('webmestre');
Je viens de vérifier en 192d : OK !
A condition de corriger autoriser_webmestre()
==== php
if(spiplistes_spip_est_inferieur_193() && !function_exists('
autoriser_webmestre'))
{
function autoriser_webmestre($faire, $type, $id, $qui, $opt)
{
$def_webmestre =
defined('_ID_WEBMESTRES')
? in_array($qui['id_auteur'], explode(':',
_ID_WEBMESTRES))
: true
;
return (
$def_webmestre
&& ($qui['statut'] == '0minirezo')
&& !$qui['restreint']
);
}
}
=== !php
En effet, _ID_WEBMESTRES est une option 192. La fonction d'origine l'attend
et renvoie false si inexistante. Donc erreur à tous les coups (ou le
contraire, sauf si définie).
En 2.0, le résultat n'est pas bon. A vérifier. Mais 2.0 est en 'dev',
peut-être un bug ?
Désolé d'avoir été aussi long. J'espère compréhensible.
Et si erreur, svp, préciser.
Au fait, kent1, j'ai vu que tu travaillais sur spiplistes via svn (un update
m'en a averti), mais je n'ai pas reçu le mail de suivi. Surcharge du serveur
?
2. éviter les accents dans le code... ca sert à rien et ca peut casser
beaucoup de choses si des pbs de conf chez l'un ou l'autre
Je ne vois pas trop où ca peut casser beaucoup de choses, sauf à mettre du
contenu texte diacritique directement dans le script au lieu de lang/*
Mais Ok. Même si j'ai du mal à me passer d'une bonne habitude ![]()
Au pire, on y gagne en lisibilité multiplateforme.
A+
--
Christian
