From 232a6ffde8ad9c68da3bac1cbeab98d82b3c91f2 Mon Sep 17 00:00:00 2001 From: x2000habouzit Date: Mon, 22 Nov 2004 07:24:56 +0000 Subject: [PATCH] validations --- include/validations.inc.php | 165 ++++++++++++++------- .../aliases.inc.php} | 92 ++++++++---- .../epouses.inc.php} | 80 ++++++---- .../evts.inc.php} | 76 +++++++--- .../listes.inc.php} | 101 ++++++++----- .../photos.inc.php} | 84 ++++++++--- 6 files changed, 413 insertions(+), 185 deletions(-) rename include/{valid_aliases.inc.php => validations/aliases.inc.php} (57%) rename include/{valid_epouses.inc.php => validations/epouses.inc.php} (66%) rename include/{valid_evts.inc.php => validations/evts.inc.php} (62%) rename include/{valid_listes.inc.php => validations/listes.inc.php} (56%) rename include/{valid_photos.inc.php => validations/photos.inc.php} (67%) diff --git a/include/validations.inc.php b/include/validations.inc.php index 7f0978e..fc13fdf 100644 --- a/include/validations.inc.php +++ b/include/validations.inc.php @@ -18,30 +18,43 @@ * Foundation, Inc., * * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * *************************************************************************** - $Id: validations.inc.php,v 1.16 2004-09-25 20:11:34 x2000habouzit Exp $ + $Id: validations.inc.php,v 1.17 2004-11-22 07:24:56 x2000habouzit Exp $ ***************************************************************************/ -/* vim: set expandtab shiftwidth=4 tabstop=4 softtabstop=4 textwidth=100: - * $Id: validations.inc.php,v 1.16 2004-09-25 20:11:34 x2000habouzit Exp $ - * - */ +// {{{ DEFINES define('SIZE_MAX', 32768); -/** classe listant les objets dans la bd */ -class ValidateIterator { +// }}} +// {{{ class ValidateIterator + +/** + * Iterator class, that lists objects through the database + */ +class ValidateIterator +{ + // {{{ properties + /** variable interne qui conserve l'état en cours de la requête */ var $sql; + + // }}} + // {{{ constuctor /** constructeur */ - function ValidateIterator () { + function ValidateIterator () + { global $globals; $this->sql = $globals->db->query("SELECT data,stamp FROM requests ORDER BY stamp"); } + // }}} + // {{{ function next() + /** renvoie l'objet suivant, ou false */ - function next () { - if(list($result,$stamp) = mysql_fetch_row($this->sql)) { + function next () + { + if (list($result,$stamp) = mysql_fetch_row($this->sql)) { $result = unserialize($result); $result->stamp = $stamp; return($result); @@ -50,15 +63,23 @@ class ValidateIterator { return(false); } } + + // }}} } +// }}} +// {{{ class Validate + /** classe "virtuelle" à dériver pour chaque nouvelle implémentation * XXX attention, dans l'implémentation de la classe, il ne faut jamais faire confiance au timestamp * de l'objet qui sort du BLOB de la BD, on met donc systématiquement le champt $this->stamp depuis * le TIMESTAMP de la BD * Par contre, à la sortie de toute fonction il faut que le stamp soit valide !!! XXX */ -class Validate { +class Validate +{ + // {{{ properties + /** l'uid de la personne faisant la requête */ var $uid; /** le time stamp de la requête */ @@ -67,6 +88,26 @@ class Validate { var $unique; /** donne le type de l'objet (certes redonant, mais plus pratique) */ var $type; + + // }}} + // {{{ constructor + + /** constructeur + * @param $_uid user id + * @param $_unique requête pouvant être multiple ou non + * @param $_type type de la donnée comme dans le champ type de x4dat.requests + * @param $_stamp stamp de création, 0 si c'estun nouvel objet + */ + function Validate($_uid, $_unique, $_type, $_stamp=0) + { + $this->uid = $_uid; + $this->stamp = $_stamp; + $this->unique = $_unique; + $this->type = $_type; + } + + // }}} + // {{{ function get_unique_request /** fonction statique qui renvoie la requête dans le cas d'un objet unique de l'utilisateur d'id $uid * @param $uid l'id de l'utilisateur concerné @@ -76,15 +117,17 @@ class Validate { * XXX à dériver XXX * à utiliser uniquement pour récupérer un objet unique */ - function get_unique_request($uid,$type) { + function get_unique_request($uid,$type) + { global $globals; $sql = $globals->db->query("SELECT data,stamp FROM requests WHERE user_id='$uid' and type='$type'"); - if(list($result,$stamp) = mysql_fetch_row($sql)) { + if (list($result,$stamp) = mysql_fetch_row($sql)) { $result = unserialize($result); // on ne fait jamais confiance au timestamp de l'objet, $result->stamp = $stamp; - if(!$result->unique) // on vérifie que c'est tout de même bien un objet unique + if (!$result->unique) { // on vérifie que c'est tout de même bien un objet unique $result = false; + } } else $result = false; @@ -92,6 +135,9 @@ class Validate { return $result; } + // }}} + // {{{ function get_request() + /** fonction statique qui renvoie la requête de l'utilisateur d'id $uidau timestamp $t * @param $uid l'id de l'utilisateur concerné * @param $type le type de la requête @@ -100,86 +146,99 @@ class Validate { * XXX fonction "statique" XXX * à utiliser uniquement pour récupérer un objet dans la BD avec Validate::get_request(...) */ - function get_request($uid, $type, $stamp) { + function get_request($uid, $type, $stamp) + { global $globals; $sql = $globals->db->query("SELECT data,stamp" ." FROM requests" ." WHERE user_id='$uid' and type = '$type' and stamp='$stamp'"); - if(list($result,$stamp) = mysql_fetch_row($sql)) { + if (list($result,$stamp) = mysql_fetch_row($sql)) { $result = unserialize($result); // on ne fait jamais confiance au timestamp de l'objet, $result->stamp = $stamp; - } else + } else { $result = false; + } mysql_free_result($sql); return($result); } - /** constructeur - * @param $_uid user id - * @param $_unique requête pouvant être multiple ou non - * @param $_type type de la donnée comme dans le champ type de x4dat.requests - * @param $_stamp stamp de création, 0 si c'estun nouvel objet - */ - function Validate($_uid, $_unique, $_type, $_stamp=0) { - $this->uid = $_uid; - $this->stamp = $_stamp; - $this->unique = $_unique; - $this->type = $_type; - } - + // }}} + // {{{ function submit() + /** fonction à utiliser pour envoyer les données à la modération * cette fonction supprimme les doublons sur un couple ($user,$type) si $this->unique est vrai */ - function submit () { + function submit () + { global $globals; - if($this->unique) - $globals->db->query("DELETE FROM requests WHERE user_id='".$this->uid - . "' AND type='".$this->type."'"); + if ($this->unique) { + $globals->db->query("DELETE FROM requests WHERE user_id='{$this->uid}' AND type='{$this->type}'"); + } - $globals->db->query("INSERT INTO requests SET user_id='".$this->uid."', type='".$this->type - . "', data='".addslashes(serialize($this))."'"); + $globals->db->query("INSERT INTO requests (user_id, type, user_id) + VALUES ('{$this->uid}', '{$this->type}, '".addslashes(serialize($this))."')"); // au cas où l'objet est réutilisé après un commit, il faut mettre son stamp à jour - $sql = $globals->db->query("SELECT MAX(stamp) FROM requests " - . "WHERE user_id='".$this->uid."' AND type='".$this->type."'"); + $sql = $globals->db->query("SELECT MAX(stamp) FROM requests + WHERE user_id='{$this->uid}' AND type='{$this->type}'"); list($this->stamp) = mysql_fetch_row($sql); mysql_free_result($sql); return true; } + + // }}} + // {{{ function clean() /** fonction à utiliser pour nettoyer l'entrée de la requête dans la table requests * attention, tout est supprimé si c'est un unique */ - function clean () { + function clean () + { global $globals; - return $globals->db->query("DELETE FROM requests WHERE user_id='".$this->uid."' AND type='".$this->type."'" + return $globals->db->query("DELETE FROM requests WHERE user_id='{$this->uid}' AND type='{$this->type}'" .($this->unique ? "" : " AND stamp='".$this->stamp."'")); } + + // }}} + // {{{ function formu() /** nom du template qui contient le formulaire */ - function formu() { return null; } + function formu() + { return null; } + + // }}} + // {{{ function handle_formu() + /** fonction à réaliser en cas de valistion du formulaire * XXX la fonction est "virtuelle" XXX */ - function handle_formu () { } + function handle_formu() + { } + + // }}} + // {{{ function commit() + /** fonction à utiliser pour insérer les données dans x4dat * XXX la fonction est "virtuelle" XXX */ - function commit () { } + function commit () + { } + + // }}} } -//*************************************************************************************** -// -// IMPLEMENTATIONS -// -//*************************************************************************************** +// }}} +// {{{ IMPLEMENTATIONS + +require("valid/aliases.inc.php"); +require("valid/epouses.inc.php"); +require("valid/photos.inc.php"); +require("valid/evts.inc.php"); +require("valid/listes.inc.php"); -require("valid_aliases.inc.php"); -require("valid_epouses.inc.php"); -require("valid_photos.inc.php"); -require("valid_evts.inc.php"); -require("valid_listes.inc.php"); +// }}} +/* vim: set expandtab shiftwidth=4 tabstop=4 softtabstop=4 foldmethod=marker: */ ?> diff --git a/include/valid_aliases.inc.php b/include/validations/aliases.inc.php similarity index 57% rename from include/valid_aliases.inc.php rename to include/validations/aliases.inc.php index c1b5db4..8a0e3fe 100644 --- a/include/valid_aliases.inc.php +++ b/include/validations/aliases.inc.php @@ -18,10 +18,15 @@ * Foundation, Inc., * * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * *************************************************************************** - $Id: valid_aliases.inc.php,v 1.20 2004-11-17 12:21:48 x2000habouzit Exp $ + $Id: aliases.inc.php,v 1.1 2004-11-22 07:24:56 x2000habouzit Exp $ ***************************************************************************/ -class AliasReq extends Validate { +// {{{ class AliasReq + +class AliasReq extends Validate +{ + // {{{ properties + var $alias; var $raison; @@ -30,48 +35,66 @@ class AliasReq extends Validate { var $prenom; var $nom; var $old=''; - - function AliasReq ($_uid, $_alias, $_raison, $_stamp=0) { + + // }}} + // {{{ constructor + + function AliasReq ($_uid, $_alias, $_raison, $_stamp=0) + { global $globals; $this->Validate($_uid, true, 'alias', $_stamp); $this->alias = $_alias; $this->raison = $_raison; - + $sql = $globals->db->query(" - SELECT l.alias,m.alias,prenom,nom - FROM auth_user_md5 AS u - INNER JOIN aliases AS l ON (u.user_id=l.id AND l.type='a_vie') - INNER JOIN aliases AS m ON (u.user_id=m.id AND FIND_IN_SET('bestalias',m.flags)) - WHERE user_id='".$this->uid."'"); + SELECT l.alias,m.alias,prenom,nom + FROM auth_user_md5 AS u + INNER JOIN aliases AS l ON (u.user_id=l.id AND l.type='a_vie') + INNER JOIN aliases AS m ON (u.user_id=m.id AND FIND_IN_SET('bestalias',m.flags)) + WHERE user_id='".$this->uid."'"); list($this->forlife,$this->bestalias,$this->prenom,$this->nom) = mysql_fetch_row($sql); mysql_free_result($sql); - $sql = $globals->db->query(" - SELECT v.alias - FROM virtual_redirect AS vr - INNER JOIN virtual AS v ON (v.vid=vr.vid AND v.alias LIKE '%@melix.net') - WHERE vr.redirect='{$this->forlife}@m4x.org'"); - if(mysql_num_rows($sql)) list($this->old) = mysql_fetch_row($sql); + $sql = $globals->db->query(" + SELECT v.alias + FROM virtual_redirect AS vr + INNER JOIN virtual AS v ON (v.vid=vr.vid AND v.alias LIKE '%@melix.net') + WHERE vr.redirect='{$this->forlife}@m4x.org'"); + if (mysql_num_rows($sql)) { + list($this->old) = mysql_fetch_row($sql); + } mysql_free_result($sql); } - function get_unique_request($uid) { + // }}} + // {{{ function get_unique_request() + + function get_unique_request($uid) + { return parent::get_unique_request($uid,'alias'); } - function formu() { return 'include/form.valid.aliases.tpl'; } + // }}} + // {{{ function formu() - function handle_formu () { - if(empty($_REQUEST['submit']) - || ($_REQUEST['submit']!="Accepter" && $_REQUEST['submit']!="Refuser")) + function formu() + { return 'include/form.valid.aliases.tpl'; } + + // }}} + // {{{ function handle_formu() + + function handle_formu() + { + if (empty($_REQUEST['submit']) || ($_REQUEST['submit']!="Accepter" && $_REQUEST['submit']!="Refuser")) { return false; + } require_once("tpl.mailer.inc.php"); $mymail = new TplMailer('valid.alias.tpl'); $mymail->assign('alias', $this->alias); $mymail->assign('bestalias', $this->bestalias); - if($_REQUEST['submit']=="Accepter") { + if ($_REQUEST['submit']=="Accepter") { $mymail->assign('answer', 'yes'); $this->commit() ; } else { @@ -84,18 +107,27 @@ class AliasReq extends Validate { return "Mail envoyé"; } - function commit () { + // }}} + // {{{ function commit() + + function commit () + { global $globals; - if($this->old) { - $globals->db->query("UPDATE virtual SET alias='{$this->alias}@melix.net' WHERE alias='{$this->old}'"); + if ($this->old) { + $globals->db->query("UPDATE virtual SET alias='{$this->alias}@melix.net' WHERE alias='{$this->old}'"); - } else { - $globals->db->query("INSERT INTO virtual SET alias='{$this->alias}@melix.net',type='user'"); - $vid = mysql_insert_id(); - $globals->db->query("INSERT INTO virtual_redirect (vid,redirect) VALUES ($vid,'{$this->forlife}@m4x.org')"); - } + } else { + $globals->db->query("INSERT INTO virtual SET alias='{$this->alias}@melix.net',type='user'"); + $vid = mysql_insert_id(); + $globals->db->query("INSERT INTO virtual_redirect (vid,redirect) VALUES ($vid,'{$this->forlife}@m4x.org')"); + } } + + // }}} } +// }}} + +// vim:set et sw=4 sts=4 sws=4 foldmethod=marker: ?> diff --git a/include/valid_epouses.inc.php b/include/validations/epouses.inc.php similarity index 66% rename from include/valid_epouses.inc.php rename to include/validations/epouses.inc.php index 10a8daa..9f0002d 100644 --- a/include/valid_epouses.inc.php +++ b/include/validations/epouses.inc.php @@ -18,13 +18,17 @@ * Foundation, Inc., * * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * *************************************************************************** - $Id: valid_epouses.inc.php,v 1.18 2004-11-17 10:12:45 x2000habouzit Exp $ + $Id: epouses.inc.php,v 1.1 2004-11-22 07:24:56 x2000habouzit Exp $ ***************************************************************************/ +// {{{ class EpouseReq + +class EpouseReq extends Validate +{ + // {{{ properties -class EpouseReq extends Validate { var $epouse; - var $alias; + var $alias = ''; var $forlife; var $oldepouse; @@ -33,46 +37,64 @@ class EpouseReq extends Validate { var $nom; var $homonyme; - - function EpouseReq ($_uid, $_forlife, $_epouse, $_stamp=0) { + + // }}} + // {{{ constructor + + function EpouseReq($_uid, $_forlife, $_epouse, $_stamp=0) + { global $globals; $this->Validate($_uid, true, 'epouse', $_stamp); $this->epouse = $_epouse; $this->forlife = $_forlife; - + list($prenom) = explode('.',$_forlife); $this->alias = make_username($prenom,$this->epouse); - if(empty($_epouse)) $this->alias = ""; - + $sql = $globals->db->query(" - SELECT e.alias, u.epouse, u.prenom, u.nom, a.id - FROM auth_user_md5 as u - LEFT JOIN aliases as e ON(e.type='alias' AND FIND_IN_SET('epouse',e.flags) AND e.id = u.user_id) - LEFT JOIN aliases as a ON(a.alias = '{$this->alias}' AND a.id != u.user_id) - WHERE u.user_id = ".$this->uid); + SELECT e.alias, u.epouse, u.prenom, u.nom, a.id + FROM auth_user_md5 as u + LEFT JOIN aliases as e ON(e.type='alias' AND FIND_IN_SET('epouse',e.flags) AND e.id = u.user_id) + LEFT JOIN aliases as a ON(a.alias = '{$this->alias}' AND a.id != u.user_id) + WHERE u.user_id = ".$this->uid); list($this->oldalias, $this->oldepouse, $this->prenom, $this->nom, $this->homonyme) = mysql_fetch_row($sql); mysql_free_result($sql); } - function get_unique_request($uid) { + // }}} + // {{{ function get_unique_request() + + function get_unique_request($uid) + { return parent::get_unique_request($uid,'epouse'); } - function formu() { return 'include/form.valid.epouses.tpl'; } + // }}} + // {{{ function formu() + + function formu() + { return 'include/form.valid.epouses.tpl'; } - function handle_formu () { - if(empty($_REQUEST['submit']) + // }}} + // {{{ function handle_formu() + + function handle_formu() + { + if (empty($_REQUEST['submit']) || ($_REQUEST['submit']!="Accepter" && $_REQUEST['submit']!="Refuser")) + { return false; - + } + require_once("tpl.mailer.inc.php"); $mymail = new TplMailer('valid.epouses.tpl'); $mymail->assign('forlife', $this->forlife); - if($_REQUEST['submit']=="Accepter") { + if ($_REQUEST['submit']=="Accepter") { $mymail->assign('answer','yes'); - if($this->oldepouse) + if ($this->oldepouse) { $mymail->assign('oldepouse',$this->oldalias); + } $mymail->assign('epouse',$this->alias); $this->commit(); } else { // c'était donc Refuser @@ -87,17 +109,25 @@ class EpouseReq extends Validate { return "Mail envoyé"; } - function commit () { + // }}} + // {{{ function commit() + + function commit() + { global $globals; - + $globals->db->query("UPDATE auth_user_md5 set epouse='".$this->epouse."' WHERE user_id=".$this->uid); - $globals->db->query("DELETE FROM aliases WHERE FIND_IN_SET('epouse',flags) AND id=".$this->uid); - $globals->db->query("UPDATE aliases SET flags='' WHERE flags='bestalias' AND id=".$this->uid); - $globals->db->query("INSERT INTO aliases VALUES('".$this->alias."', 'alias', 'epouse,bestalias', ".$this->uid.", null)"); + $globals->db->query("DELETE FROM aliases WHERE FIND_IN_SET('epouse',flags) AND id=".$this->uid); + $globals->db->query("UPDATE aliases SET flags='' WHERE flags='bestalias' AND id=".$this->uid); + $globals->db->query("INSERT INTO aliases VALUES('".$this->alias."', 'alias', 'epouse,bestalias', ".$this->uid.", null)"); $f = fopen("/tmp/flag_recherche","w"); fputs($f,"1"); fclose($f); } + + // }}} } +// }}} +// vim:set et sw=4 sts=4 sws=4 foldmethod=marker: ?> diff --git a/include/valid_evts.inc.php b/include/validations/evts.inc.php similarity index 62% rename from include/valid_evts.inc.php rename to include/validations/evts.inc.php index dcf77d3..5231d92 100644 --- a/include/valid_evts.inc.php +++ b/include/validations/evts.inc.php @@ -18,11 +18,15 @@ * Foundation, Inc., * * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * *************************************************************************** - $Id: valid_evts.inc.php,v 1.12 2004-11-17 12:21:48 x2000habouzit Exp $ + $Id: evts.inc.php,v 1.1 2004-11-22 07:24:56 x2000habouzit Exp $ ***************************************************************************/ +// {{{ class EvtReq -class EvtReq extends Validate { +class EvtReq extends Validate +{ + // {{{ properties + var $evtid; var $titre; var $texte; @@ -36,6 +40,9 @@ class EvtReq extends Validate { var $nom; var $prenom; + // }}} + // {{{ constructor + function EvtReq($_evtid,$_titre,$_texte,$_pmin,$_pmax,$_peremption, $_comment,$_uid,$_stamp=0) { global $globals; @@ -48,22 +55,34 @@ class EvtReq extends Validate { $this->peremption = $_peremption; $this->comment = $_comment; $req = $globals->db->query(" - SELECT a.alias,promo,nom,prenom - FROM auth_user_md5 AS u - INNER JOIN aliases AS a ON ( u.user_id=a.id AND FIND_IN_SET('bestalias',a.flags)) - WHERE user_id='$_uid'"); + SELECT a.alias,promo,nom,prenom + FROM auth_user_md5 AS u + INNER JOIN aliases AS a ON ( u.user_id=a.id AND FIND_IN_SET('bestalias',a.flags)) + WHERE user_id='$_uid'"); list($this->bestalias,$this->promo,$this->nom,$this->prenom) = mysql_fetch_row($req); mysql_free_result($req); } - function get_unique_request($uid) { + // }}} + // {{{ function get_unique_request() + + function get_unique_request($uid) + { return false; //non unique } - function formu() { return 'include/form.valid.evts.tpl'; } + // }}} + // {{{ function formu() + + function formu() + { return 'include/form.valid.evts.tpl'; } + + // }}} + // {{{ function handle_formu() - function handle_formu() { + function handle_formu() + { global $globals; if (isset($_POST['action'])) { require("tpl.mailer.inc.php"); @@ -71,32 +90,41 @@ class EvtReq extends Validate { $mymail->assign('bestalias',$this->bestalias); $mymail->assign('titre',$this->titre); - if($_REQUEST['action']=="Valider") { - $globals->db->query("UPDATE evenements - SET creation_date = creation_date, validation_user_id = {$_SESSION['uid']}, - validation_date = NULL, flags = CONCAT(flags,',valide') - WHERE id='{$this->evtid}' LIMIT 1"); + if ($_REQUEST['action']=="Valider") { + $globals->db->query("UPDATE evenements + SET creation_date = creation_date, validation_user_id = {$_SESSION['uid']}, + validation_date = NULL, flags = CONCAT(flags,',valide') + WHERE id='{$this->evtid}' LIMIT 1"); $mymail->assign('answer','yes'); } - if($_REQUEST['action']=="Invalider") { - $globals->db->query("UPDATE evenements - SET creation_date = creation_date, validation_user_id = {$_SESSION['uid']}, - validation_date = NULL, flags = REPLACE(flags,'valide','') - WHERE id='{$this->evtid}' LIMIT 1"); + if ($_REQUEST['action']=="Invalider") { + $globals->db->query("UPDATE evenements + SET creation_date = creation_date, validation_user_id = {$_SESSION['uid']}, + validation_date = NULL, flags = REPLACE(flags,'valide','') + WHERE id='{$this->evtid}' LIMIT 1"); $mymail->assign('answer', 'no'); } - if($_REQUEST['action']=="Supprimer") { + if ($_REQUEST['action']=="Supprimer") { $globals->db->query("DELETE from evenements WHERE id='{$this->evtid}' LIMIT 1"); } - if ($_POST['action'] != "Supprimer") + if ($_POST['action'] != "Supprimer") { $mymail->send(); + } $this->clean(); } - return ""; + return ""; } - function commit() { - } + // }}} + // {{{ function commit() + + function commit() + { } + + // }}} } +// }}} + +// vim:set et sw=4 sts=4 sws=4 foldmethod=marker: ?> diff --git a/include/valid_listes.inc.php b/include/validations/listes.inc.php similarity index 56% rename from include/valid_listes.inc.php rename to include/validations/listes.inc.php index 701d2af..5b1737e 100644 --- a/include/valid_listes.inc.php +++ b/include/validations/listes.inc.php @@ -18,10 +18,15 @@ * Foundation, Inc., * * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * *************************************************************************** - $Id: valid_listes.inc.php,v 1.5 2004-11-17 12:21:48 x2000habouzit Exp $ + $Id: listes.inc.php,v 1.1 2004-11-22 07:24:56 x2000habouzit Exp $ ***************************************************************************/ -class ListeReq extends Validate { +// {{{ class ListeReq + +class ListeReq extends Validate +{ + // {{{ properties + var $bestalias; var $liste; var $desc; @@ -32,8 +37,12 @@ class ListeReq extends Validate { var $owners; var $members; + + // }}} + // {{{ constructor - function ListeReq ($_uid, $_liste, $_desc, $_advertise, $_modlevel, $_inslevel, $_owners, $_members, $_stamp=0) { + function ListeReq($_uid, $_liste, $_desc, $_advertise, $_modlevel, $_inslevel, $_owners, $_members, $_stamp=0) + { global $globals; $this->Validate($_uid, true, 'liste', $_stamp); $this->liste = $_liste; @@ -42,68 +51,94 @@ class ListeReq extends Validate { $this->advertise = $_advertise; $this->modlevel = $_modlevel; $this->inslevel = $_inslevel; - + $this->owners = $_owners; $this->members = $_members; $sql = $globals->db->query(" - SELECT l.alias - FROM auth_user_md5 AS u - INNER JOIN aliases AS l ON (u.user_id=l.id AND FIND_IN_SET('bestalias',l.flags)) - WHERE user_id='".$this->uid."'"); + SELECT l.alias + FROM auth_user_md5 AS u + INNER JOIN aliases AS l ON (u.user_id=l.id AND FIND_IN_SET('bestalias',l.flags)) + WHERE user_id='".$this->uid."'"); list($this->bestalias) = mysql_fetch_row($sql); mysql_free_result($sql); } - function get_unique_request($uid) { + // }}} + // {{{ function get_unique_request() + + function get_unique_request($uid) + { return parent::get_unique_request($uid,'liste'); } - function formu() { return 'include/form.valid.listes.tpl'; } + // }}} + // {{{ function formu() + + function formu() + { return 'include/form.valid.listes.tpl'; } + + // }}} + // {{{ function handle_formu() - function handle_formu () { - if(empty($_REQUEST['submit']) + function handle_formu() + { + if (empty($_REQUEST['submit']) || ($_REQUEST['submit']!="Accepter" && $_REQUEST['submit']!="Refuser")) + { return false; + } require_once("tpl.mailer.inc.php"); $mymail = new TplMailer('valid.liste.tpl'); $mymail->assign('alias', $this->liste); $mymail->assign('bestalias', $this->bestalias); - $mymail->assign('motif', stripslashes($_REQUEST['motif'])); + $mymail->assign('motif', stripslashes($_REQUEST['motif'])); - if($_REQUEST['submit']=="Accepter") { + if ($_REQUEST['submit']=="Accepter") { $mymail->assign('answer', 'yes'); - if(!$this->commit()) return 'problème'; + if (!$this->commit()) { + return 'problème'; + } } else { $mymail->assign('answer', 'no'); } $mymail->send(); + //Suppression de la demande $this->clean(); return "Mail envoyé"; } - function commit () { + // }}} + // {{{ function commit() + + function commit() + { global $globals; - include('xml-rpc-client.inc.php'); - $res = $globals->db->query("SELECT password FROM auth_user_md5 WHERE user_id={$_SESSION['uid']}"); - list($pass) = mysql_fetch_row($res); - mysql_free_result($res); - - $client = new xmlrpc_client("http://{$_SESSION['uid']}:$pass@localhost:4949/polytechnique.org"); - $ret = $client->create_list($this->liste, $this->desc, - $this->advertise, $this->modlevel, $this->inslevel, - $this->owners, $this->members); - $liste = strtolower($this->liste); - if($ret) { - $globals->db->query("INSERT INTO aliases (alias,type) VALUES('{$liste}', 'liste')"); - $globals->db->query("INSERT INTO aliases (alias,type) VALUES('{$liste}-owner', 'liste')"); - $globals->db->query("INSERT INTO aliases (alias,type) VALUES('{$liste}-admin', 'liste')"); - $globals->db->query("INSERT INTO aliases (alias,type) VALUES('{$liste}-bounces', 'liste')"); - } - return $ret; + include('xml-rpc-client.inc.php'); + $res = $globals->db->query("SELECT password FROM auth_user_md5 WHERE user_id={$_SESSION['uid']}"); + list($pass) = mysql_fetch_row($res); + mysql_free_result($res); + + $client = new xmlrpc_client("http://{$_SESSION['uid']}:$pass@localhost:4949/polytechnique.org"); + $ret = $client->create_list($this->liste, $this->desc, + $this->advertise, $this->modlevel, $this->inslevel, + $this->owners, $this->members); + $liste = strtolower($this->liste); + if ($ret) { + $globals->db->query("INSERT INTO aliases (alias,type) VALUES('{$liste}', 'liste')"); + $globals->db->query("INSERT INTO aliases (alias,type) VALUES('{$liste}-owner', 'liste')"); + $globals->db->query("INSERT INTO aliases (alias,type) VALUES('{$liste}-admin', 'liste')"); + $globals->db->query("INSERT INTO aliases (alias,type) VALUES('{$liste}-bounces', 'liste')"); + } + return $ret; } + + // }}} } +// }}} + +// vim:set et sw=4 sts=4 sws=4 foldmethod=marker: ?> diff --git a/include/valid_photos.inc.php b/include/validations/photos.inc.php similarity index 67% rename from include/valid_photos.inc.php rename to include/validations/photos.inc.php index d6a5d2f..ec55ba8 100644 --- a/include/valid_photos.inc.php +++ b/include/validations/photos.inc.php @@ -18,11 +18,15 @@ * Foundation, Inc., * * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * *************************************************************************** - $Id: valid_photos.inc.php,v 1.16 2004-11-17 12:21:48 x2000habouzit Exp $ + $Id: photos.inc.php,v 1.1 2004-11-22 07:24:56 x2000habouzit Exp $ ***************************************************************************/ +// {{{ class PhotoReq -class PhotoReq extends Validate { +class PhotoReq extends Validate +{ + // {{{ properties + var $mimetype; var $data; var $x; @@ -31,8 +35,12 @@ class PhotoReq extends Validate { var $bestalias; var $prenom; var $nom; + + // }}} + // {{{ constructor - function PhotoReq ($_uid, $_file, $_stamp=0) { + function PhotoReq($_uid, $_file, $_stamp=0) + { global $erreur, $globals; $this->Validate($_uid, true, 'photo', $_stamp); @@ -44,26 +52,37 @@ class PhotoReq extends Validate { list($this->bestalias,$this->prenom,$this->nom) = mysql_fetch_row($sql); mysql_free_result($sql); - if(!file_exists($_file)) { + if (!file_exists($_file)) { $erreur = "Fichier inexistant"; return false; } // calcul de la taille de l'image $image_infos = getimagesize($_file); - if(empty($image_infos)) { + if (empty($image_infos)) { $erreur = "Image invalide"; return false; } list($this->x, $this->y, $this->mimetype) = $image_infos; // récupération du type de l'image - switch($this->mimetype) { - case 1: $this->mimetype = "gif"; break; - case 2: $this->mimetype = "jpeg"; break; - case 3: $this->mimetype = "png"; break; - default: $erreur = "Type d'image invalide"; return false; + switch ($this->mimetype) { + case 1: + $this->mimetype = "gif"; + break; + + case 2: + $this->mimetype = "jpeg"; + break; + + case 3: + $this->mimetype = "png"; + break; + + default: + $erreur = "Type d'image invalide"; + return false; } // lecture du fichier - if(!($size = filesize($_file)) or $size > SIZE_MAX) { + if (!($size = filesize($_file)) or $size > SIZE_MAX) { $erreur = "Image trop grande (max 30ko)"; return false; } @@ -74,42 +93,67 @@ class PhotoReq extends Validate { unset($erreur); } + + // }}} + // {{{ function get_unique_request() - function get_unique_request($uid) { + function get_unique_request($uid) + { return parent::get_unique_request($uid,'photo'); } - function formu() { return 'include/form.valid.photos.tpl'; } + // }}} + // {{{ function formu() + + function formu() + { return 'include/form.valid.photos.tpl'; } + + // }}} + // {{{ function handle_formu() - function handle_formu () { - if(empty($_REQUEST['submit']) + function handle_formu () + { + if (empty($_REQUEST['submit']) || ($_REQUEST['submit']!="Accepter" && $_REQUEST['submit']!="Refuser")) + { return false; + } require_once("tpl.mailer.inc.php"); $mymail = new TplMailer('valid.photos.tpl'); $mymail->assign('bestalias', $this->bestalias); - if($_REQUEST['submit']=="Accepter") { + if ($_REQUEST['submit']=="Accepter") { $mymail->assign('answer','yes'); $this->commit(); - } else + } else { $mymail->assign('answer','no'); + } $mymail->send(); $this->clean(); return "Mail envoyé"; } + + // }}} + // {{{ function commit() - function commit () { + function commit() + { global $globals; - $globals->db->query("REPLACE INTO photo set uid='".$this->uid."', attachmime = '".$this->mimetype."', attach='" - .addslashes($this->data)."', x='".$this->x."', y='".$this->y."'"); + $globals->db->query("REPLACE INTO photo (uid, attachmime, attach, x, y) + VALUES ('{$this->uid}', '{$this->mimetype}', '" + .addslashes($this->data)."', '{$this->x}', '{$this->y}')"); require('notifs.inc.php'); register_watch_op($this->uid,WATCH_FICHE); } + + // }}} } +// }}} + +// vim:set et sw=4 sts=4 sws=4 foldmethod=marker: ?> -- 2.1.4