[wiki/inscription.py] Un vrai formulaire qui donne l'adresse mac
* 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
This commit is contained in:
parent
e6752812ca
commit
292c933dff
1 changed files with 32 additions and 16 deletions
|
@ -30,25 +30,27 @@ SXXo )XZX: |i> ._%i>~~+|ii| .i| ._s_ass,,. ._a%ssssssss
|
||||||
License: GPLv3
|
License: GPLv3
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import re, locale, base64
|
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 import wikiutil
|
||||||
from MoinMoin.widget import html
|
from MoinMoin.widget import html
|
||||||
from MoinMoin.Page import Page
|
from MoinMoin.Page import Page
|
||||||
from MoinMoin.PageEditor import PageEditor
|
from MoinMoin.PageEditor import PageEditor
|
||||||
|
|
||||||
|
|
||||||
CHAMPS = ["nom Nom", u"prenom Prénom", "dob Date de naissance",
|
CHAMPS = ["nom Nom", u"prenom Prénom", "dob Date de naissance",
|
||||||
"etudes Choisir une filière", "tel Numéro de téléphone",
|
u"etudes Choisir une filière", u"tel Numéro de téléphone",
|
||||||
"chbre Chambre (ex: J042g, M666)", "section Filière d'études",
|
"chbre Chambre (ex: J042g, M666)", u"section Filière d'études",
|
||||||
u"annee année", "mail Adresse mail", "dns Nom de machine fixe",
|
u"annee année", "mail Adresse mail", "dns Nom de machine fixe"]
|
||||||
"mac Adresse MAC"]
|
#"mac Adresse MAC"]
|
||||||
|
|
||||||
def _create_form(request):
|
def _create_form(request):
|
||||||
url = request.page.url(request)
|
url = request.page.url(request)
|
||||||
ret = html.FORM(action=url)
|
ret = html.FORM(action=url)
|
||||||
ret.append(html.INPUT(type='hidden', name='action', value='inscription'))
|
ret.append(html.INPUT(type='hidden', name='action', value='inscription'))
|
||||||
|
|
||||||
f = html.UL(id="formulaire_inscription")
|
f = html.UL(CLASS="formulaire_preinscription")
|
||||||
|
|
||||||
for lbl, txt in [c.split(' ', 1) for c in CHAMPS]:
|
for lbl, txt in [c.split(' ', 1) for c in CHAMPS]:
|
||||||
champ = html.UL()
|
champ = html.UL()
|
||||||
|
@ -56,6 +58,22 @@ def _create_form(request):
|
||||||
champ.append(html.LI().append(html.INPUT(type="text", name=lbl)))
|
champ.append(html.LI().append(html.INPUT(type="text", name=lbl)))
|
||||||
f.append(html.LI().append(champ))
|
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"))
|
ret.append(html.INPUT(type="submit", name="inscrire", value=u"Me préinscrire"))
|
||||||
|
|
||||||
return unicode(ret)
|
return unicode(ret)
|
||||||
|
@ -63,23 +81,21 @@ def _create_form(request):
|
||||||
def execute(pagename, request):
|
def execute(pagename, request):
|
||||||
page = Page(request, pagename)
|
page = Page(request, pagename)
|
||||||
form = request.form
|
form = request.form
|
||||||
if request.dicts.has_member("GroupeAdmin", request.user.name):
|
if not request.dicts.has_member("GroupeAdmin", request.user.name):
|
||||||
request.theme.add_msg("Oui, tu es gentil", "dialog")
|
request.theme.add_msg(u"Non, car tu es méchant", "error")
|
||||||
else:
|
return(page.send_page())
|
||||||
request.theme.add_msg("Non, car tu es méchant", "error")
|
|
||||||
|
|
||||||
return(page.send_page())
|
|
||||||
|
|
||||||
if form.has_key('inscrire'):
|
if form.has_key('inscrire'):
|
||||||
pass
|
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
|
else: # show create form
|
||||||
request.emit_http_headers()
|
request.emit_http_headers()
|
||||||
|
form = _create_form(request)
|
||||||
request.theme.send_title(u"Formulaire de préinscription", pagename=pagename)
|
request.theme.send_title(u"Formulaire de préinscription", pagename=pagename)
|
||||||
|
|
||||||
request.write(request.formatter.startContent("content"))
|
request.write(request.formatter.startContent("content"))
|
||||||
|
|
||||||
# THIS IS A BIG HACK. IT NEEDS TO BE CLEANED UP
|
# THIS IS A BIG HACK. IT NEEDS TO BE CLEANED UP
|
||||||
request.write(_create_form(request))
|
request.write(form)
|
||||||
request.write(request.formatter.endContent())
|
request.write(request.formatter.endContent())
|
||||||
request.theme.send_footer(pagename)
|
request.theme.send_footer(pagename)
|
||||||
request.theme.send_closing_html()
|
request.theme.send_closing_html()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue