Beispiel #1
0
 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)
Beispiel #2
0
    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)