http://redfoot.net/3.0/code#python,
if request.method=='POST':
import sha
SESSION = redfoot.namespace("http://redfoot.net/3.0/session#")
USER = redfoot.namespace("http://redfoot.net/3.0/user#")
return_uri = URIRef(request.parameters.get("return_uri", "%s/" % request.host))
register_uri = URIRef(request.parameters.get("register_uri", "%s/register/" % request.host))
uid = request.parameters.get("uid", None)
if uid:
name = request.parameters.get("name", None) or uid.split("@")[0]
if "@" in uid:
if not uid.startswith("mailto:"):
uid = URIRef("mailto:%s" % uid)
else:
uid = URIRef("%s/users/%s#" % (request.host, uid))
password = request.parameters.get("password", None)
verify = request.parameters.get("verify", None)
request.create_session()
sid = request.session_id
assert sid
context = redfoot.get_context(redfoot.context_id(sid))
users_context = redfoot.get_context(redfoot.context_id("%s/users" % request.host))
if password==verify:
if not (uid, None, None) in redfoot:
hexdigest = Literal(sha.new(password).hexdigest())
redfoot.remove((sid, SESSION.authenticated, None))
redfoot.remove((sid, SESSION.uid, None))
context.add((sid, SESSION.authenticated, Literal("True")))
context.add((sid, SESSION.uid, uid))
if name:
users_context.add((uid, RDFS.label, Literal(name)))
users_context.add((uid, RDF.type, USER.User))
users_context.add((uid, USER.hexdigest, hexdigest))
#message = "Registered new user: %s" % uid
context.remove((sid, SESSION.message, None))
response.setStatus(302, 'found')
response.setHeader('Location', return_uri)
try:
redfoot.xmpp.send(REDFOOT.Admin, "Registered new user: %s ( %s )" % (redfoot.label(uid), uid))
except Exception, e:
_logger.exception(e)
else:
message = "User already exists"
context.remove((sid, SESSION.message, None))
context.add((sid, SESSION.message, Literal(message)))
response.setStatus(302, 'found')
response.setHeader('Location', register_uri)
else:
message = "password and verify mismatch"
context.remove((sid, SESSION.message, None))
context.add((sid, SESSION.message, Literal(message)))
response.setStatus(302, 'found')
response.setHeader('Location', register_uri)
else:
message = "must specify an email address"
context.remove((sid, SESSION.message, None))
context.add((sid, SESSION.message, Literal(message)))
response.setStatus(302, 'found')
response.setHeader('Location', register_uri)
Comments regarding http://redfoot.net/3.0/aspects/register/register_process
Login to submit a comment.