[jabber] l'interface web doit gérer les inscriptions sur ejabberd
reste à: * réimplémenter le lostpassword ? * décider si l'on retient l'adresse mail, nom et prénom * décider si on transforme ce script en macro moinmoin (immonde) darcs-hash:20090809122554-bd074-f3f7ecd5d39f291a781506c13a70ef21576b06f2.gz
This commit is contained in:
parent
aaf52989f6
commit
d65ba27a7f
2 changed files with 47 additions and 61 deletions
|
@ -1,12 +1,13 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
###########################################
|
##############################################
|
||||||
# Système d'inscription en ligne à jabber #
|
# Système d'inscription en ligne à jabber #
|
||||||
# 14/02/2004 -- Frédéric Pauget #
|
# 14/02/2004 -- Frédéric Pauget #
|
||||||
###########################################
|
# Migration à ejabberd le 9 août 2009 -- adg #
|
||||||
|
##############################################
|
||||||
|
|
||||||
import os, cgi, string, time, sys
|
import os, cgi, string, time, sys, commands
|
||||||
form = cgi.FieldStorage()
|
form = cgi.FieldStorage()
|
||||||
print "content-type: text/html"
|
print "content-type: text/html"
|
||||||
print
|
print
|
||||||
|
@ -14,8 +15,7 @@ print
|
||||||
file=open('/var/www/jabber/template')
|
file=open('/var/www/jabber/template')
|
||||||
html=file.read()
|
html=file.read()
|
||||||
|
|
||||||
jabberuserdir='/var/lib/jabber/jabber.crans.org/' # Avec un / à la fin
|
logfile='/var/log/ejabberd/inscriptions.log'
|
||||||
logfile='/var/log/jabber/inscriptions.log'
|
|
||||||
|
|
||||||
page ="<H2>Création d'un compte Jabber.</H2>"
|
page ="<H2>Création d'un compte Jabber.</H2>"
|
||||||
|
|
||||||
|
@ -33,14 +33,7 @@ try :
|
||||||
col_user='FF0000'
|
col_user='FF0000'
|
||||||
user=''
|
user=''
|
||||||
|
|
||||||
filename=jabberuserdir+user+".xml"
|
# vérification des mots de passe
|
||||||
|
|
||||||
if user :
|
|
||||||
if os.path.exists(filename) :
|
|
||||||
page += "<b>Erreur : </b>login déja pris.<br><br>"
|
|
||||||
col_user='FFFF00'
|
|
||||||
user=''
|
|
||||||
|
|
||||||
try :
|
try :
|
||||||
pass1=form['pass1'].value
|
pass1=form['pass1'].value
|
||||||
pass2=form['pass2'].value
|
pass2=form['pass2'].value
|
||||||
|
@ -51,6 +44,7 @@ try :
|
||||||
password=''
|
password=''
|
||||||
col_pass='FF0000'
|
col_pass='FF0000'
|
||||||
|
|
||||||
|
# vérification du nom
|
||||||
try :
|
try :
|
||||||
nom=form['nom'].value
|
nom=form['nom'].value
|
||||||
nom=string.capitalize(nom)
|
nom=string.capitalize(nom)
|
||||||
|
@ -62,6 +56,7 @@ try :
|
||||||
nom=''
|
nom=''
|
||||||
col_nom='FF0000'
|
col_nom='FF0000'
|
||||||
|
|
||||||
|
# vérification du prénom
|
||||||
try :
|
try :
|
||||||
prenom=form['prenom'].value
|
prenom=form['prenom'].value
|
||||||
prenom=string.capitalize(prenom)
|
prenom=string.capitalize(prenom)
|
||||||
|
@ -73,6 +68,7 @@ try :
|
||||||
prenom=''
|
prenom=''
|
||||||
col_prenom='FF0000'
|
col_prenom='FF0000'
|
||||||
|
|
||||||
|
# vérification du mail
|
||||||
try :
|
try :
|
||||||
mail=form['mail'].value
|
mail=form['mail'].value
|
||||||
mail = string.lower(mail)
|
mail = string.lower(mail)
|
||||||
|
@ -98,33 +94,15 @@ if col_user!='FFFFFF' or col_pass!='FFFFFF' or col_mail!='FFFFFF' or col_nom!='F
|
||||||
page+="Certaines donnes sont incorrectes :<br><br>"
|
page+="Certaines donnes sont incorrectes :<br><br>"
|
||||||
|
|
||||||
if user and password and nom and prenom and mail:
|
if user and password and nom and prenom and mail:
|
||||||
t=time.localtime()
|
|
||||||
timestamp=''
|
|
||||||
for i in [0,1,2,3,4,5] :
|
|
||||||
if t[i]<10 : timestamp += "0%s" % t[i]
|
|
||||||
else : timestamp += "%s" % t[i]
|
|
||||||
timestamp=timestamp[0:8]+"T"+timestamp[8:10]+':'+timestamp[10:12]+':'+timestamp[12:14]
|
|
||||||
file=open(filename,'w')
|
|
||||||
file.write("<xdb><password xmlns='jabber:iq:auth' xdbns='jabber:iq:auth'>%s</password>" % password)
|
|
||||||
file.write("<query xmlns='jabber:iq:register' xdbns='jabber:iq:register'>")
|
|
||||||
file.write("<username>%s</username>" % user)
|
|
||||||
file.write("<password xmlns='jabber:iq:auth'>%s</password>" % password)
|
|
||||||
file.write("<name>%s.%s</name>" % (prenom,nom) )
|
|
||||||
file.write("<email>%s</email>" % mail)
|
|
||||||
file.write("<x xmlns='jabber:x:delay' stamp='%s'>registered</x></query><foo xdbns='jabber:x:offline' xmlns='jabber:x:offline'>" % timestamp)
|
|
||||||
# file.write("<message from='jabber.crans.org' to='%s@jabber.crans.org'>\n" % user)
|
|
||||||
# file.write(" <subject>Bienvenue !</subject>\n")
|
|
||||||
# file.write(" <body>Bienvenue sur le seveur Jabber du Cr@ns -- Nous espérons que vous aprécierez ce service !</body>\n")
|
|
||||||
# file.write(" <x xmlns='jabber:x:delay' from='%s@jabber.crans.org' stamp='%s'>Offline Storage</x></message>" % (user, timestamp) )
|
|
||||||
file.write("</foo></xdb>")
|
|
||||||
file.close()
|
|
||||||
os.chmod(filename,0600)
|
|
||||||
|
|
||||||
# Paranoia : on loggue
|
r, msg = commands.getstatusoutput('/usr/sbin/ejabberdctl %s%s%s%s' %
|
||||||
file=open(logfile,'a')
|
('register', commands.mkarg(user),
|
||||||
file.write("%s %s %s %s.%s\n" % (timestamp, os.environ['REMOTE_HOST'], user, prenom, nom) )
|
' jabber.crans.org',
|
||||||
file.close()
|
commands.mkarg(password)))
|
||||||
|
if msg:
|
||||||
|
page += '<p><b>ejabberdctl :</b> %s</p>' % msg
|
||||||
|
|
||||||
|
if r == 0:
|
||||||
page += "<b>Enregistrement réussi :</b><br><ul>"
|
page += "<b>Enregistrement réussi :</b><br><ul>"
|
||||||
page += "<li>vous pouvez immédiatement vous connecter au serveur jabber du crans<br>"
|
page += "<li>vous pouvez immédiatement vous connecter au serveur jabber du crans<br>"
|
||||||
page += "<li>Votre nom d'utilisateur est : %s<br>" % user
|
page += "<li>Votre nom d'utilisateur est : %s<br>" % user
|
||||||
|
@ -134,7 +112,15 @@ if user and password and nom and prenom and mail:
|
||||||
page += "<li>Notre serveur accepte le SSL sur le port 5223 ('ancien SSL')<br>"
|
page += "<li>Notre serveur accepte le SSL sur le port 5223 ('ancien SSL')<br>"
|
||||||
page += "</ul><p><b>Bonne utilisation de Jabber :)</b></p>"
|
page += "</ul><p><b>Bonne utilisation de Jabber :)</b></p>"
|
||||||
page += "<p>Plus d'informations pour configurer son client sur le <a href=http://wiki.crans.org/VieCrans/UtiliserJabber>wiki</a>."
|
page += "<p>Plus d'informations pour configurer son client sur le <a href=http://wiki.crans.org/VieCrans/UtiliserJabber>wiki</a>."
|
||||||
|
|
||||||
|
print html % page
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
|
# page += "<b>Erreur : </b>login déja pris.<br><br>"
|
||||||
|
col_user='FF0000'
|
||||||
|
user=''
|
||||||
|
|
||||||
page += "<table align=center border=1 cellpadding=5>"
|
page += "<table align=center border=1 cellpadding=5>"
|
||||||
page += "<form method=post>"
|
page += "<form method=post>"
|
||||||
page += "<tr><td align=right>Identifiant souhaité (JID):<td bgcolor=#%s><input type=text name=user size=10 value='%s'>@jabber.crans.org" % (col_user,user)
|
page += "<tr><td align=right>Identifiant souhaité (JID):<td bgcolor=#%s><input type=text name=user size=10 value='%s'>@jabber.crans.org" % (col_user,user)
|
||||||
|
|
|
@ -45,7 +45,7 @@ function MM_displayStatusMsg(msgStr) { //v1.0
|
||||||
//-->
|
//-->
|
||||||
</script>
|
</script>
|
||||||
<link rel="SHORTCUT ICON" HREF="/favicon.ico">
|
<link rel="SHORTCUT ICON" HREF="/favicon.ico">
|
||||||
<link rel="stylesheet" href="/styles/crans.css" type="text/css">
|
<link rel="stylesheet" href="/crans.css" type="text/css">
|
||||||
</HEAD>
|
</HEAD>
|
||||||
<BODY BGCOLOR=#FFFFFF leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onLoad="MM_preloadImages('/images/presentation-hi.jpg','/images/presentation-down.jpg','/images/liens-hi.jpg','/images/liens-down.jpg','/images/informations-hi.jpg','/images/informations-down.jpg','/images/vie-hi.jpg','/images/vie-down.jpg','/images/annuaire-hi.jpg','/images/annuaire-down.jpg','/images/pages-perso-hi.jpg','/images/pages-perso-down.jpg','/images/webmail-hi.jpg','/images/webmail-down.jpg','/images/ssh-hi.jpg','/images/ssh-down.jpg')">
|
<BODY BGCOLOR=#FFFFFF leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onLoad="MM_preloadImages('/images/presentation-hi.jpg','/images/presentation-down.jpg','/images/liens-hi.jpg','/images/liens-down.jpg','/images/informations-hi.jpg','/images/informations-down.jpg','/images/vie-hi.jpg','/images/vie-down.jpg','/images/annuaire-hi.jpg','/images/annuaire-down.jpg','/images/pages-perso-hi.jpg','/images/pages-perso-down.jpg','/images/webmail-hi.jpg','/images/webmail-down.jpg','/images/ssh-hi.jpg','/images/ssh-down.jpg')">
|
||||||
<div id="Texte" style="position:absolute; left:200px; top:152px; width:667px; z-index:1; overflow: visible; visibility: visible; background-color: #FFFFFF; layer-background-color: #FFFFFF">
|
<div id="Texte" style="position:absolute; left:200px; top:152px; width:667px; z-index:1; overflow: visible; visibility: visible; background-color: #FFFFFF; layer-background-color: #FFFFFF">
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue