Dans auth_init_droits on fait appel a une autorisation autoriser(loger) qui par defaut autorise tous les statuts sauf 5poubelle
En surchargeant cette autorisation on peut interdire le login au auteur 'nouveau' a confirmer, et les obliger a utiliser le lien de confirmation par email
+ gestion de l'echec login dans le formulaire de login pour afficher un message d'erreur (on affiche une erreur classique du type mot de passe incorrect pour ne pas donner d'information sur l'existence d'un login)
- encoding (utf8)
- eof_ending (saut le ligne en fin de fichier)
- elseif (pas else if)
- function_call_space (espaces sur fonctions)
- function_declaration (pareil)
- function_typehint_space (pareil)
r16959 la balise formulaire_admin est sur toutes les pages,
ne pas provoquer l'inclusion de abstract_sql pour autant, si le visiteur est anonyme,
cela laisse a penser qu'on a une connexion sql a chaque hit.
On retarde l'inclusion au cas ou le visiteur aura acces aux boutons d'admin
r16960 lorsque la redirection sur une action est absolue, il s'agit le plus souvent de l'adresse du site lui meme : transformer en url relative plutot que tout vider (cas de l'auth openid)
r16961 Redirection en cas d'echec sur authentification : il faut utiliser & et non & sur l'url
r16962 inclusion manquante (bmr)
r16963 parse_url n'accepte un deuxieme argument qu'a partir de PHP 5.1, corriger la syntaxe pour utiliser la version avec un seul argument.
r16971 N'utiliser qu'un seul argument dans parse_url pour le support des PHP 4.x (ce bug touche les installation en mutualise)
Securite : redirections absolues depuis les actions (Matsuyama)
introduire une fonction tester_url_absolue() qui teste si une url est absolue.
L'utiliser dans le formulaire login et dans la securisation du parametre redirect de toutes les actions via public/aiguiller...
securite : cast sur $exec (Matsuyama)
securite : cast string sur la variable page de l'url (Matsuyama)
Je profite de cette écriture massive pour normaliser quelque chose de trompeur lorsqu'on compare deux versions, savoir l'usage de " ou ' dans le premier argument de define et defined. Comme les chaînes entre apostrophes sont plus rapidement analysées que celles entre guillemets, je choisis l'apostrophe.
Dépot obtenu avec le script Shell:
{{{
a=$(find . -name "*.php" |grep -v extensions/ | grep -v /config/ | grep -v index.php | grep -v public.php | grep -v prive.php )
echo -n "Fichiers: "
echo $a|wc -w
for i in $a
do
sed -f ~/Sites/spip/spip.sed $i > /tmp/f.php
if diff -q $i /tmp/f.php
then
:
else
diff $i /tmp/f.php
# echo $i; php /tmp/f.php
# mv /tmp/f.php $i
fi
done
}}}
et le script Sed:
{{{
s/Copyright (c) 2001-20../Copyright (c) 2001-2011/
s,\(if [(]!*\)*\(defined* *[(]\)"\([^"]*\)"\(.*\);[[:space:]]*[#/]*.*$,\1\2'\3'\4;,
}}}
auth_url_retour_login() fournit une url securisee pour retour apres identification chez un sso
auth_terminer_identifier_login() appelee au retour sur l'url precedente finit l'identification apres le retour du sso
auth_loger() loge un auteur decrit par son tableau
action/auth gere le retour depuis un SSO
la fonction charger du formulaire de login() retrouve aussi le login si on est identifie mais sans cookie admin, et lance dans ce cas la redirection necessaire