def POST(self): """TODO: handle redir""" i = web.input(username='', passwd='', redir='') if i.username and i.passwd: try: u = User.get(i.username) if User.easyauth(u, i.passwd): loadsession(u) raise web.seeother('/') except: raise err = "Incorrect username or password" else: err = "Please provide all required fields" return render().auth.login(err=err)
def POST(self): def defusr(): return {'karma': 0, 'comments': [], 'votes': [], 'posts': [], 'created': datetime.datetime.utcnow(), 'bio': '', 'email': ''} i = web.input(username='', passwd='', redir='') if i.username and i.passwd: if re.match(username_regex, i.username): if re.match(passwd_regex, i.passwd): try: # treat as login if creds are right u = User.get(i.username) if User.easyauth(u, i.passwd): loadsession(u) raise web.seeother('/') except: pass try: u = User.register(i.username, i.passwd, **defusr()) loadsession(u) raise web.seeother('/') except: err = "Username unavailable" else: err = passwd_err else: err = username_err else: err = "Please enter all required fields" return render().auth.register(err=err)