[chambres_vides.py, config.py] On envoie un mail aux adhérent pour les prévenir qu'on va bientôt supprimer leur machines.
Ignore-this: 3a82abab8e7e49a0bfc30096319a33d3 darcs-hash:20120920030050-2c9c1-fd4b1f272d082d57b5fd3f1e7e601b19cde021f6.gz
This commit is contained in:
parent
46e9dab74a
commit
49fb17b8d5
2 changed files with 51 additions and 25 deletions
|
@ -10,40 +10,61 @@ import ldap_crans
|
||||||
conn = ldap_crans.CransLdap()
|
conn = ldap_crans.CransLdap()
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
|
sendmails = False
|
||||||
|
if "--mail-all" in sys.argv:
|
||||||
|
sendmails = True
|
||||||
|
import email.Header
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
import config
|
import config
|
||||||
year = config.ann_scol
|
year = config.ann_scol
|
||||||
delai = 0 # jours avant d'être considéré déserteur
|
delai = config.upload.demenagement_delai
|
||||||
|
|
||||||
# On récupère ceux qui n'ont pas payé cette année
|
# On récupère ceux qui n'ont pas payé cette année
|
||||||
bad_boys_e_s = conn.search('chbre=????&paiement=%d&paiement!=%d' % (year-1,year))['adherent']
|
bad_boys_e_s = conn.search('chbre=????&paiement=%d&paiement!=%d' % (year-1,year))['adherent']
|
||||||
|
|
||||||
timeout = time.time() - 3600*24*delai
|
now = time.time()
|
||||||
|
|
||||||
|
|
||||||
header_printed = False
|
|
||||||
to_print = []
|
to_print = []
|
||||||
for clandestin in bad_boys_e_s:
|
for clandestin in bad_boys_e_s:
|
||||||
# On cherche la dernière fois qu'il s'est retrouvé en chambre ????
|
# On cherche la dernière fois qu'il s'est retrouvé en chambre ????
|
||||||
for l in clandestin.historique():
|
for l in clandestin.historique():
|
||||||
# On récupère la date du dernier changement de chambre
|
# On récupère la date du dernier changement de chambre
|
||||||
# (l'historique est enregistré par ordre chronologique)
|
# (l'historique est enregistré par ordre chronologique)
|
||||||
x = re.match("(.*),.* : chbre \(.*-> \?\?\?\?\)",l)
|
x = re.match("(.*),.* : chbre \((.*) -> \?\?\?\?\)",l)
|
||||||
if x <> None:
|
if x <> None:
|
||||||
d = x.group(1)
|
kickout_date = x.group(1)
|
||||||
|
exchambre = x.group(2)
|
||||||
|
|
||||||
|
machine_liste = clandestin.machines()
|
||||||
# On lui accorde un délai
|
# On lui accorde un délai
|
||||||
if timeout < time.mktime(time.strptime(d,'%d/%m/%Y %H:%M')):
|
kickout_date = time.mktime(time.strptime(kickout_date, "%d/%m/%Y %H:%M"))
|
||||||
continue
|
delta = now - kickout_date
|
||||||
|
ttl = delai*86400 - delta
|
||||||
|
if ttl > 0:
|
||||||
|
if sendmails and machine_liste != []:
|
||||||
|
# On lui envoie un mail pour le prévenir
|
||||||
|
to = clandestin.mail()
|
||||||
|
if not "@" in to:
|
||||||
|
to += "@crans.org"
|
||||||
|
mail = config.upload.message_demenagement % {"from" : "respbats@crans.org",
|
||||||
|
"chambre" : exchambre,
|
||||||
|
"jours" : int(ttl/86400) + 1,
|
||||||
|
"to" : to}
|
||||||
|
mailer = os.popen("/usr/sbin/sendmail -t", "w")
|
||||||
|
mailer.write(mail.encode("utf-8") + "\n.")
|
||||||
|
mailer.close()
|
||||||
|
|
||||||
for m in clandestin.machines():
|
else:
|
||||||
|
for m in machine_liste:
|
||||||
# On n'a pas envie d'essayer de supprimer une machine qui a une blackliste
|
# On n'a pas envie d'essayer de supprimer une machine qui a une blackliste
|
||||||
if len(m.blacklist_actif()) > 0:
|
if len(m.blacklist_actif()) > 0:
|
||||||
continue
|
continue
|
||||||
to_print.append( (clandestin.id(), m.ip(), m.id(), m.nom()) )
|
to_print.append( (clandestin.id(), m.ip(), m.id(), m.nom()) )
|
||||||
##m2 = conn.search('mid=%s' % m.id(),mode='w')['machine'][0]
|
m2 = conn.search('mid=%s' % m.id(),mode='w')['machine'][0]
|
||||||
##m2.delete('Adherent sans chambre valide depuis %d jours' % delai)
|
m2.delete('Adherent sans chambre valide depuis %d jours' % delai)
|
||||||
|
|
||||||
if to_print != []:
|
if to_print != []:
|
||||||
# Il s'est passé quelque chose, donc on envoie un mail
|
# Il s'est passé quelque chose, donc on envoie un mail
|
||||||
|
@ -59,7 +80,7 @@ if to_print != []:
|
||||||
for aid, ip, mid, hostname in to_print:
|
for aid, ip, mid, hostname in to_print:
|
||||||
message += template % (aid, ip, mid, hostname)
|
message += template % (aid, ip, mid, hostname)
|
||||||
message += tiret_line
|
message += tiret_line
|
||||||
headers = u"From: respbats@crans.org\nSubject: Machines supprimées pour chambre invalide\n"
|
headers = u"From: respbats@crans.org\nSubject: %s\n" % email.Header.make_header([("Machines supprimées pour chambre invalide", "utf8")]).encode()
|
||||||
headers += u"Content-Type: text/plain; charset=UTF-8\n"
|
headers += u"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
headers += u"To: respbats@crans.org\n"
|
headers += u"To: respbats@crans.org\n"
|
||||||
mail = headers + "\n" + message
|
mail = headers + "\n" + message
|
||||||
|
|
|
@ -10,6 +10,9 @@ from time import localtime
|
||||||
# Fichier généré
|
# Fichier généré
|
||||||
from config_srv import adm_only, role
|
from config_srv import adm_only, role
|
||||||
|
|
||||||
|
# Pour les emails
|
||||||
|
import email.Header
|
||||||
|
|
||||||
##### Gestion des câblages
|
##### Gestion des câblages
|
||||||
# Selon la date, on met :
|
# Selon la date, on met :
|
||||||
# -ann_scol : Année scolaire en cours
|
# -ann_scol : Année scolaire en cours
|
||||||
|
@ -278,22 +281,24 @@ Le PS a été généré et se trouve sur zamok :
|
||||||
--\u0020
|
--\u0020
|
||||||
Message créé par deconnexion.py"""
|
Message créé par deconnexion.py"""
|
||||||
|
|
||||||
|
demenagement_delai = 8
|
||||||
message_demenagement = u"""From: %(from)s
|
# Nombre de jours après le passage en chambre ???? où on supprime les machines
|
||||||
To: %(to)s
|
message_demenagement = u"""From: %%(from)s
|
||||||
Subject: =?iso-8859-1?Q?D=E9m=E9nagement=20non=20d=E9clar=E9?=
|
To: %%(to)s
|
||||||
|
Subject: %s
|
||||||
Content-Type: text/plain; charset="utf-8"
|
Content-Type: text/plain; charset="utf-8"
|
||||||
|
|
||||||
Bonjour,
|
Bonjour,
|
||||||
|
|
||||||
Il semble que tu étais inscrit dans la chambre %(chambre), mais un
|
Il semble que tu étais inscrit dans la chambre %%(chambre)s, mais un
|
||||||
autre adhérent s'y est inscrit, ce qui suppose que tu n'y es plus.
|
autre adhérent s'y est inscrit, ce qui suppose que tu n'y es plus.
|
||||||
Pourrais tu nous préciser ta nouvelle chambre ou adresse stp ?
|
Pourrais-tu passer à une permanence afin de régulariser ta situation ?
|
||||||
Si tu es parti du campus, souhaites-tu garder tes machines ?
|
|
||||||
|
Si tu ne nous donnes pas de nouvelles d'ici %%(jours)s jours, tes machines seront
|
||||||
|
automatiquement effacées de notre base de données.
|
||||||
|
|
||||||
--\u0020
|
--\u0020
|
||||||
Merci par avance,
|
Les membres actifs du Crans""" % email.Header.make_header([("Déménagement non déclaré", "utf8")])
|
||||||
Les membres actifs du Crans"""
|
|
||||||
|
|
||||||
|
|
||||||
# Classe pour les paramètres du firewall #
|
# Classe pour les paramètres du firewall #
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue