Commit 588d6430 authored by chris's avatar chris Committed by chris

inconnu: suppression de fichiers

parent 207d1099
tmp
tmp_ihoes
test
new
IMG/cache*
local/cache*
old*
stats
junk
guide-admin
2014
Développement pour l'autre net : Documentation :
--------------------------------
INSCRIPTION
--------------------------------
1. Inscription d'un compte à l'autre net :
- Signature des statuts
- Signature du réglement intérieur
- Entrée d'un login / pass / email
* vérif que le login n'est pas pris
* vérif que le pass est + 5 caractères
* vérif que l'email est valide
* vérif que l'email n'est pas un domaine de l'autre net
- Envoi d'un mail de confirmation avec un numéro id et une url
- Création définitive du compte à la réception sur l'url de l'id.
fonctionnement technique dans doc/inscription
--------------------------------
COMPTABILITE
--------------------------------
(notes en vrac)
2. Historique d'un compte :
- Date de création = date de naissance. (impossible de créer un compte les 29/02 histoire de ne pas avoir de problemes...)
- à la création : quotas limités, inscription forcée sur "nouveaux@admin.lautre.net"
- possibilité à tout moment par les trésoriers de flagguer "indestructible" un compte non à jour (pour attente)
- date de naissance + 30 jours = envoi d'un mail rappelant la cotisation.
- date de naissance + 38 jours = possibilité de supprimer le compte le soir même dans l'interface trésorier si le compte n'est pas à jour de cotis
- date de naissance + 90 jours = suppression automatique du compte si pas à jour de cotis et pas flaggué
- Possibilité de désactiver le programme de suppression automatique (par exemple en cas de vacances de la trésorerie !) dans le bureau tresorier.
- si réception d'une cotisation : saisie par le trésorier des infos comptables => validation du compte et des quotas, inscriptions sur assemblée, possibilité de participer à debats, techos, aide, votes...
* un, deux trois... ans après
- -60, -30, -8, -0, +30 jours autour de la date anniversaire envoi de mails rappelant la cotisation
- +38 jours après la date anniversaire : possibilité de supprimer le compte le soir même dans l'interface trésorier si le compte n'est pas à jour de cotis
- +90 jours après la date anniversaire = suppression automatique du compte si pas à jour de cotis et pas flaggué
- si réception d'une cotisation : saisie par le trésorier des infos comptables => validation du compte
- pas de désinscription d'assemblée, débat, vote ... pour les comptes pas à jour mais ayant déjà payé une cotis.
* Prise en compte des paiements : tous les soirs : pour tous les comptes pas à jour de paiement, si le solde du compte est positif, 23 Euros passent en Cotisation, et le reste en don. Le compte passe en mode "a jour de cotis".
fonctionnement technique dans doc/compta
--------------------------------
VOTES
--------------------------------
- Possibilité de proposer un vote dans l'interface du bureau. Les votes passent dans la catégorie "Votes non validés". Un email est envoyé sur debats@lautre.net : on y précise l'email d'inscription de la personne ayant proposé le vote.
- Deux façons de valider un vote :
- Les votes sont validés par le collège solidaire (qui les valide quand ils sont bien écrits et débattus) et sont mis tout de suite en attente de vote.
- Tout adhérent peut "soutenir" un vote (une et une seule fois). Au-delà d'un certain
poucentage de votants ayant soutenu un vote (peu importe leur choix au cours du vote en question),
pourcentage à décider, le vote est automatiquement validé et est placé en attente de vote.
- Le vote a lieu le week-end suivant du vendredi 9H au lundi 21H, c'est un vote à bulletin secret virtuel (le système ne retient que le fait que vous ayez voté ainsi que votre vote anonymisé).
- Les taux de participation des votes en cours sont lisibles en temps réel (même après le vote)
- Après clôture du vote, les résultats sont lisibles dans "Votes terminés"
- Le collège solidaire ne peut effacer ou modifier que les votes non validés. Une fois la procédure
de validation lancée, rien ne peut empêcher un vote d'aboutir en l'état.
-Email a envoyer a debats@lautre.net avec l'email du gars qui a écrit le vote
-email a assemblee quand un vote est valide (par CS ou soutiens)
-email a assemblee quand le vote démarre
-email a assemblee avec les résultats quand le vote est fini
fonctionnement technique dans doc/vote
--------------------------------
LISTES
--------------------------------
- Liste Assemblee : contient tous les membres à jour de cotisation
- Listes Debats, Techos : contient tous les membres souhaitant participer, l'inscription peut
se faire depuis le bureau en un clic.
fonctionnement technique dans doc/listes
- mettre le nom des fonctions dans les messages d'erreur
<?php
/* $Id: config.php,v 1.5 2004/02/08 21:41:58 jerome Exp $ */
ob_start();
$MYDOM="www.domainepublic.net";
$root="/var/alternc/html/r/root/lautrenet/";
$r2="/lautrenet/";
require_once("functions.php");
require_once("m_db.php");
require_once("m_error.php");
require_once("m_session.php");
require_once("m_compta.php");
require_once("m_vote.php");
class DB_system extends DB_Sql {
var $Host="localhost";
var $Database="administration";
var $User="administration";
var $Password="r4dm1n";
}
$er = new m_error();
$db = new DB_system();
$se = new m_session();
$vote = new m_vote();
$vote->min_valid=10; /* Pourcentage des votants qui doivent soutenir le vote afin qu'il soit valide. */
$vote->email_from="vote-admin@domainepublic.net";
$vote->email_assemblee="fausseassemblee@domainepublic.net";
$vote->email_votecree="fauxvote@domainepublic.net";
$compta = new m_compta();
$compta->email_tresorier="Gestion <gestion@domainepublic.net>";
$compta->montant_cotis_euros=30;
$compta->$tresorerie_User="administration";
$compta->$tresorerie_Host="localhost";
$compta->$tresorerie_Password="r4dm1n";
$compta->$tresorerie_Database="administration";
if (!$nocheck) {
if (!$se->checkid()) {
include($root."error.php");
exit();
}
}
if ($check && !$se->rights[$check]) {
$er->raise("session",6);
include($root."error.php");
exit();
}
// Titre par dfaut de chaque page html
$title="Administration";
?>
<?php
/* $Id: functions.php,v 1.3 2004/02/08 18:52:14 jerome Exp $ */
/*
Enleve les \ des lements posts par formulaire, dans les variables globales.
*/
function stripslashes_post() {
if (is_array($_POST)) {
reset($_POST);
while (list($key,$val)=each($_POST)) {
$GLOBALS[$key]=stripslashes($GLOBALS[$key]);
}
}
}
function format_lines($str) {
$str=nl2br($str);
$str=ereg_replace('(http://[^;,
]*\\??[^ ,;.
]*)'," <a target=\"_blank\" href=\"\\1\">\\1</a> ",$str);
return $str;
}
function secure_string($str) {
return str_replace("<","&lt;",str_replace(">","&gt;",trim($str)));
}
function mail_tpl($from, $to, $template, $fields) {
/* Envoi d'un mail avec substitution de patron */
$f=fopen($template,"rb");
$subject=trim(fgets($f,1024));
$text="";
while (!feof($f)) {
$text.=fgets($f,1024);
}
fclose($f);
reset($fields);
while (list($k,$v)=each($fields)) {
$subject=str_replace("%%".$k."%%",$v,$subject);
$text=str_replace("%%".$k."%%",$v,$text);
}
mail($to,$subject,$text,"From: $from\nReply-to: $from");
}
function get_email($login) {
global $db,$er;
$db->query("SELECT email AS em FROM f_comptes WHERE login='$login'");
$db->next_record();
return $db->f("em");
}
function get_datecreation($login) {
global $db,$er;
$db->query("SELECT creation AS dc FROM f_comptes WHERE login='$login'");
$db->next_record();
return $db->f("dc");
}
function get_dateanniversaire($login) {
global $db,$er;
$db->query("
SELECT f_comptes.login, DATE_ADD(creation, INTERVAL COUNT(DID) YEAR) AS echeance
FROM f_comptes INNER JOIN f_compta_historique ON f_comptes.login = f_compta_historique.login
WHERE DID=5 AND statut != 0 AND f_compta_historique.login='$login'
GROUP BY f_comptes.login ORDER BY `f_comptes`.`login`
");
if($db->next_record()) { return $db->f("echeance"); } else { return get_datecreation($login); }
}
function quick_list_like($cherche) {
global $db,$er;
$v=array();
$db->query("SELECT * FROM f_comptes WHERE (login LIKE '%$cherche%' OR email LIKE '%$cherche%') AND statut>0 ORDER BY login");
while ($db->next_record()) {
$v[]=$db->Record;
}
return $v;
}
function nb_like($cherche) {
global $db,$er;
$db->query("SELECT COUNT(*) AS nb FROM f_comptes WHERE (login LIKE '%$cherche%' OR email LIKE '%$cherche%') AND statut>0");
$db->next_record();
return $db->f("nb");
}
function nb_login($login) {
global $db,$er;
$db->query("SELECT COUNT(*) AS nb FROM f_comptes WHERE login='$login'");
$db->next_record();
return $db->f("nb");
}
/* Convertion d'une date MYsql en une date FRancaise et l'inverse : */
function date_my2fr($str) {
if (!$str) return "";
if ($str=="0000-00-00") return "";
return substr($str,8,2)."/".substr($str,5,2)."/".substr($str,0,4);
}
/* Convertion d'une date TIMESTAMP MYsql en une date FRancaise et l'inverse : */
function date_ts2fr($str) {
if (!$str) return "";
return substr($str,6,2)."/".substr($str,4,2)."/".substr($str,0,4);
}
function datetime_ts2fr($str) {
if (!$str) return "";
return substr($str,6,2)."/".substr($str,4,2)."/".substr($str,0,4)." ".substr($str,8,2).":".substr($str,10,2);
}
/* Convertion d'une date francaise en date MYsql, fonction souple (j/m/a, jj/mm/aaaa m/aa ...) : */
function date_fr2my($str) {
if (!$str) return "";
if (!ereg("([0-9]+)/([0-9]+)/([0-9]+)",$str,$match)) {
if (!ereg("([0-9]+)/([0-9]+)",$str,$match)) {
return false;
} else {
// mm/yyyy :
$m=intval($match[1]);
$d=1;
$y=intval($match[2]);
}
} else {
// dd/mm/yyyy :
$d=intval($match[1]);
$m=intval($match[2]);
$y=intval($match[3]);
}
if ($d<1 || $d>31) return false;
if ($m<1 || $m>12) return false;
return $y."-".$m."-".$d;
}
?>
This diff is collapsed.
This diff is collapsed.
<?php
/* $Id: m_error.php,v 1.4 2004/02/12 14:27:08 said Exp $ */
class m_error {
/* $strs contient les messages d'erreur. Une fonction est precisee entre parentheses pour localiser l'erreur dans la classe correspondante
- vote : class m_vote
- compta : class m_compta
- erreur : class m_error
*/
var $strs=array(
// ERR
0=>array(0=>"OK"),
// VOTE
"vote" =>array(
0=>"OK",
1=>"Le titre, le texte et le nombre de choix sont obligatoires !",
2=>"Tous les choix doivent être remplis !",
3=>"Vous avez deja soutenu ce vote !",
4=>"Vous avez deja participe a ce vote !",
5=>"Vote introuvable ! (fonction get_vote)",
6=>"Titre du vote introuvable ! (fonction get_titre)",
7=>"Etat du vote introuvable ! (fonction get_etat)",
8=>"Choix du vote introuvables ! (fonction get_choixvotes)",
9=>"Nombre de soutiens du vote introuvable (fonction get_nbsoutiens)",
10=>"Nombre de signatures du vote introuvable (fonction get_nbsignatures)",
11=>"Nombre de votants du vote introuvable (fonction get_nbvotants)",
12=>"Erreur MYSQL lors de la destruction du vote (fonction delete)",
13=>"Erreur MYSQL lors de la modification du vote (fonction update ou update_nbitems)",
14=>"Erreur MYSQL lors de la validation du vote (fonction validate)",
15=>"Erreur MYSQL lors du lancement du vote (fonction launch)",
16=>"Erreur MYSQL lors de l'arret du vote (fonction stop)",
17=>"Erreur MYSQL lors du vote (fonction vote)",
),
"session" =>array(
0=>"OK",
1=>"Serveur introuvable",
2=>"Cookie de session non trouvé",
3=>"Cookie de session incorrect",
4=>"Session introuvable",
5=>"IP incorrecte",
6=>"Vous n'avez le droit d'accéder à cette page",
),
"compta"=>array(
0=>"OK",
1=>"Erreur MySQL : Cheque non depose dans la base (fonction insrt_cheque)",
2=>"Erreur MySQL : Cheque non encaisse (fonction delete_cheque ou delete_lot)",
3=>"Erreur MySQL : Compte non mis en attente (fonction mettre_e_attente)",
4=>"Erreur MySQL : Cheque inexistant dans la base (fonction get_cheque)",
5=>"Erreur MySQL : Statut non modifié (fonction set_statut)",
6=>"Erreur MySQL : Banque non ajoutée (fonction insert_banque)",
7=>"Erreur MySQL lors de la recherche dans la base f_comptes (fonctions get_nbcomptes_*) ",
8=>"Erreur MySQL : Opération comptable non ajoutée (fonction insert_operation ou insert_lot_tresorerie)",
9=>"Erreur MySQL : Cheque non mis à jour (fonction update_cheque)",
10=>"Erreur FS : Impossible d'écrire le nouveau numéro de lot (fonction new_lot)",
11=>"Erreur MYSQL lors de la recherche du login du tresorier (fonction get_logintresorier)",
12=>"Erreur MYSQL lors de la recherche du login (fonction get_login)",
13=>"Erreur MYSQL lors de la recherche du statut (fonction get_statut)",
14=>"Erreur MYSQL lors de la recherche du recu (fonction get_recu)",
15=>"Erreur MYSQL lors du solde (fonction get_solde)",
16=>"Erreur MYQSL lors de la recherche du nombre de cheques dans le lot (fonction get_lot_count)",
17=>"Erreur MYSQL lors de la somme des cheques dans un lot (fonction get_lot_montant)",
18=>"Erreur MYQSL lors de la mise d'un cheque dans un lot (fonction set_lot)",
19=>"Erreur MYSQL lors de la recherche du nombre de cheques en attente (fonction get_nbcheques_attente)",
20=>"Erreur MYSQL lors de l'insertion d'un lot de cheques dans la tresorerie (fonction insert_lot_tresorerie)",
21=>"Erreur MYSQL lors de la recherche de date sur un lot (fonction get_mindate_lot)",
22=>"Erreur MYSQL lors de la desactivation de la mise en attente d'un cheque (fonction desattente)",
),
);
var $error=0; /* Derniere erreur enregistree, numéro*/
var $clsid=0; /* Derniere erreur enregistree, classe concernée */
var $param=""; /* Dernière erreur enregistrée, parametre chaine eventuel */
var $logfile;
/*****************************************************************************/
function m_error() {
global $root;
$this->logfile=$root."log.txt";
}
/*****************************************************************************/
function raise($clsid,$error,$param="") {
/* Leve une exception. Si elle existe, sinon, stocke un message d'erreur sur erreur ...*/
if ($this->strs[$clsid][$error]) {
$this->clsid=$clsid;
$this->error=$error;
$this->param=$param;
$this->logerr();
return true;
} else {
$this->clsid=0;
$this->error=1;
$this->param="Numéro $error, Classe $clsid, Valeur $param";
$this->logerr();
return false;
}
}
/*****************************************************************************/
function errstr() {
return sprintf($this->strs[$this->clsid][$this->error],$this->param);
}
/*****************************************************************************/
function logerr() {
global $me;
$f=fopen($this->logfile,"ab");
fputs($f,date("d/m/Y H:i:s")." - ERROR - ");
fputs($f,$se->login." - ");
fputs($f,sprintf($this->strs[$this->clsid][$this->error]."\n",$this->param));
fclose($f);
}
/*****************************************************************************/
function log($clsid,$function,$param="") {
global $me;
$f=@fopen($this->logfile,"ab");
if ($f) {
fputs($f,date("d/m/Y h:i:s")." - CALL - ");</