
* C'est encore trs brouillon, mais il y a de nombreux cas débiles qui sont spécifiés darcs-hash:20090601195758-bd074-7885297aa40161d4d5169338b21460282566270e.gz
102 lines
4 KiB
Python
102 lines
4 KiB
Python
# -*- coding: iso-8859-1 -*-
|
|
u"""
|
|
_vi
|
|
<Ii _aa.
|
|
:I> aZ2^
|
|
v` .we^
|
|
. . .. + _2~
|
|
._auqXZZX ._auqXZZZ` ...._... ~ ._|ii~
|
|
.aXZZY""^~~ vX#Z?""~~~._=ii|+++++++ii=, _=|+~-
|
|
JXXX` )XXX' _|i+~ .__..._. +l= -~-
|
|
SXXo )XZX: |i> ._%i>~~+|ii| .i| ._s_ass,,. ._a%ssssssss
|
|
-SXZ6,,. )XZX: =l> _li+~` iii| .ii _uZZXX??YZ#Za, uXUX*?!!!!!!!
|
|
"!XZ#ZZZZZXZXZ` <i> =i: .|ii| .l|.dZXr 4XXo.XXXs,.
|
|
-~^^^^^^^` -||, +i|=. |ii| :i>:ZXZ( ]XZX.-"SXZUZUXoa,,
|
|
+l|, ~~|++|++i|||+~:ZXZ( ]ZZX ---~"?Z#m
|
|
.__;=- ~+l|=____.___, :ZXZ( ]ZXX_________auXX2
|
|
._||>+~- . -~+~++~~~- :ZXZ( ]ZXZZ#######UX*!"
|
|
-+-- .>` _
|
|
.<}` 3;
|
|
.<l> .Zc
|
|
.ii^ )Xo
|
|
]XX
|
|
|
|
MoinMoin - Formulaire d'inscription
|
|
|
|
Un formulaire de préinscription au Crans
|
|
|
|
Copyright 2009 Antoine Durand-Gasselin <adg@crans.org>
|
|
|
|
License: GPLv3
|
|
"""
|
|
|
|
import re, locale, base64, sys
|
|
from commands import getstatusoutput as gso
|
|
sys.path.append("/usr/scripts/gestion")
|
|
from iptools import AddrInNet
|
|
from MoinMoin import wikiutil
|
|
from MoinMoin.widget import html
|
|
from MoinMoin.Page import Page
|
|
from MoinMoin.PageEditor import PageEditor
|
|
|
|
CHAMPS = ["nom Nom", u"prenom Prénom", "dob Date de naissance",
|
|
u"etudes Choisir une filière", u"tel Numéro de téléphone",
|
|
"chbre Chambre (ex: J042g, M666)", u"section Filière d'études",
|
|
u"annee année", "mail Adresse mail", "dns Nom de machine fixe"]
|
|
#"mac Adresse MAC"]
|
|
|
|
def _create_form(request):
|
|
url = request.page.url(request)
|
|
ret = html.FORM(action=url)
|
|
ret.append(html.INPUT(type='hidden', name='action', value='inscription'))
|
|
|
|
f = html.UL(CLASS="formulaire_preinscription")
|
|
|
|
for lbl, txt in [c.split(' ', 1) for c in CHAMPS]:
|
|
champ = html.UL()
|
|
champ.append(html.LI().append(html.Text(txt)))
|
|
champ.append(html.LI().append(html.INPUT(type="text", name=lbl)))
|
|
f.append(html.LI().append(champ))
|
|
|
|
# On récupère l'adrese MAC
|
|
ip = request.remote_addr
|
|
if not AddrInNet(ip, '138.231.136.0/21'): request.theme.add_msg(
|
|
u"tu n'es pas dans le bon sous-réseau, je ne peux pas deviner ton adresse MAC", 'error')
|
|
status, mac = gso("/usr/sbin/arp %s | perl -nle '{print $& if /00(:\S\S)*/}'" % ip) # gruik, gruik, grUUIIIk !
|
|
mac= mac.strip()
|
|
if status: request.theme.add_msg(u"Problème d'arp (ou de perl...)", 'error')
|
|
if not re.match("00(:[a-fA-F0-9][a-fA-F0-9]){5}", mac):
|
|
request.theme.add_msg(u"Mac non valide: %s" % mac)
|
|
mac = 'XX:XX:XX:XX:XX:XX'
|
|
champ = html.UL()
|
|
champ.append(html.LI().append(html.Text("Adresse MAC")))
|
|
champ.append(html.LI().append(html.INPUT(type="text", name='mac', value=mac)))
|
|
f.append(html.LI().append(champ))
|
|
|
|
ret.append(f)
|
|
ret.append(html.INPUT(type="submit", name="inscrire", value=u"Me préinscrire"))
|
|
|
|
return unicode(ret)
|
|
|
|
def execute(pagename, request):
|
|
page = Page(request, pagename)
|
|
form = request.form
|
|
if not request.dicts.has_member("GroupeAdmin", request.user.name):
|
|
request.theme.add_msg(u"Non, car tu es méchant", "error")
|
|
return(page.send_page())
|
|
|
|
if form.has_key('inscrire'):
|
|
request.theme.add_msg(u"Un peu de patience, je ne suis pas encore implémenté", "error")
|
|
return(page.send_page())
|
|
else: # show create form
|
|
request.emit_http_headers()
|
|
form = _create_form(request)
|
|
request.theme.send_title(u"Formulaire de préinscription", pagename=pagename)
|
|
request.write(request.formatter.startContent("content"))
|
|
|
|
# THIS IS A BIG HACK. IT NEEDS TO BE CLEANED UP
|
|
request.write(form)
|
|
request.write(request.formatter.endContent())
|
|
request.theme.send_footer(pagename)
|
|
request.theme.send_closing_html()
|
|
|