Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def get_by_id(id):
- return db.select('users', where='id=$id')[0]
- def get_by_username(username):
- return db.select('users', where='username=$username')[0]
- def get_by_email(email):
- return db.select('users', where='email=$email')[0]
- def is_email_available(email):
- return not db.select('users', vars = dict(email=email), what = 'count(id) as c', where = 'email = $email')[0].c
- def is_correct_password(username, password):
- userdata = user.get_user_by_username(username)
- hashed = userdate['password']
- return bcrypt.hashpw(password, hashed) == hashed
- def create(username, password, email, **kw):
- hashed = bcrypt.hashpw(password, bcrypt.gensalt())
- db.insert('users', username=username, password=hashed, email=email, **kw)
- def delete(id):
- db.delete('users', where='id=$id')
- login_form = form.Form(
- form.Textbox('username'),
- form.Password('password'),
- form.Button('Login'),
- validators = [
- form.Validator('Incorrect username / password combination.', lambda i: user.is_correct_password(i.username, i.password))
- ]
- )
- class login:
- def GET(SELF):
- # do $:form.render() in the template
- form = login_form()
- return render.login(form)
- def POST(SELF):
- form = login_form()
- username, password = web.input().username, web.input().password
- if not form.validates():
- return render.login(form)
- else:
- session.logged_in = 1
- session.username = username
- #redirect user back where they came from or to index
- referer = web.ctx.env.get('HTTP_REFERER', '/')
- raise web.seeother(referer)
Add Comment
Please, Sign In to add comment