Skip to content

Commit

Permalink
[refactor,Account][s]: move password setting and checking onto Accoun…
Browse files Browse the repository at this point in the history
…t object from account controller.
  • Loading branch information
rgrp committed Mar 13, 2011
1 parent 38dd93b commit eeb7e25
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 4 deletions.
7 changes: 3 additions & 4 deletions annotator/account.py
Expand Up @@ -28,7 +28,7 @@ def login():
password = form.password.data
email = form.email.data
accounts = Account.get_by_email(email)
if accounts and check_password_hash(accounts[0].pwdhash, password):
if accounts and accounts[0].check_password(password):
acc = accounts[0]
session['account-id'] = acc.id
flash('Welcome back', 'success')
Expand Down Expand Up @@ -71,9 +71,8 @@ def signup():
# TODO: re-enable csrf
form = SignupForm(request.form, csrf_enabled=False)
if request.method == 'POST' and form.validate():
pwdhash = generate_password_hash(form.password.data)
account = Account(username=form.username.data, email=form.email.data,
pwdhash=pwdhash)
account = Account(username=form.username.data, email=form.email.data)
account.password = form.password.data
account.save()
flash('Thanks for signing-up', 'success')
return redirect(url_for('login'))
Expand Down
9 changes: 9 additions & 0 deletions annotator/model/couch.py
@@ -1,6 +1,7 @@
from datetime import datetime
import uuid

from werkzeug import generate_password_hash, check_password_hash
import couchdb
import couchdb.design
from couchdb.mapping import Document, Mapping
Expand Down Expand Up @@ -155,6 +156,14 @@ class Account(DomainObject):
}
}''')

def _password_set(self, v):
self.pwdhash = generate_password_hash(v)

password = property(lambda self: self.pwdhash, _password_set)

def check_password(self, password):
return check_password_hash(self.pwdhash, password)

@classmethod
def get_by_email(cls, email):
out = cls.by_email(Metadata.DB, limit=1)
Expand Down

0 comments on commit eeb7e25

Please sign in to comment.