mirror of
https://git.wownero.com/wownero/wownero-funding-system.git
synced 2024-08-15 00:53:45 +00:00
Better error handling for user registration, better alerts
This commit is contained in:
parent
40705e5a34
commit
4044c5c644
6 changed files with 38 additions and 18 deletions
|
@ -47,6 +47,24 @@ class User(base):
|
|||
def __repr__(self):
|
||||
return '<User %r>' % self.username
|
||||
|
||||
@classmethod
|
||||
def add(cls, username, password, email):
|
||||
from wowfunding.factory import db_session
|
||||
from wowfunding.validation import val_username, val_email
|
||||
|
||||
try:
|
||||
# validate incoming username/email
|
||||
val_username(username)
|
||||
val_email(email)
|
||||
|
||||
user = User(username, password, email)
|
||||
db_session.add(user)
|
||||
db_session.commit()
|
||||
db_session.flush()
|
||||
return user
|
||||
except Exception as ex:
|
||||
db_session.rollback()
|
||||
raise
|
||||
|
||||
class Proposal(base):
|
||||
__tablename__ = "proposals"
|
||||
|
@ -91,6 +109,8 @@ class Proposal(base):
|
|||
raise Exception('wrong category')
|
||||
self.category = category
|
||||
|
||||
|
||||
|
||||
@property
|
||||
def json(self):
|
||||
return {
|
||||
|
|
|
@ -142,14 +142,16 @@ def register():
|
|||
if request.method == 'GET':
|
||||
return make_response(render_template('register.html'))
|
||||
|
||||
username = request.form['username']
|
||||
password = request.form['password']
|
||||
email = request.form['email']
|
||||
|
||||
try:
|
||||
user = User(request.form['username'], request.form['password'], request.form['email'])
|
||||
db_session.add(user)
|
||||
db_session.commit()
|
||||
flash('User successfully registered')
|
||||
user = User.add(username, password, email)
|
||||
flash('Successfully registered. No confirmation email required. You can login!')
|
||||
return redirect(url_for('login'))
|
||||
except Exception as ex:
|
||||
flash('Could not register user.')
|
||||
flash('Could not register user: %s' % str(ex), 'error')
|
||||
return make_response(render_template('register.html'))
|
||||
|
||||
|
||||
|
|
|
@ -2,19 +2,7 @@
|
|||
{% block content %}
|
||||
<!--main-->
|
||||
<div class="container" id="main">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
{% with messages = get_flashed_messages() %}
|
||||
{% if messages %}
|
||||
<div class="alert alert-danger">
|
||||
{% for message in messages %}
|
||||
{{ message }}<br>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
</div>
|
||||
</div>
|
||||
{% include 'messages.html' %}
|
||||
|
||||
<div class="row">
|
||||
<style>
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
<!-- Page Content -->
|
||||
|
||||
<div class="container" style="margin-bottom:140px;">
|
||||
{% include 'messages.html' %}
|
||||
|
||||
<div class="row">
|
||||
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
<!-- Page Content -->
|
||||
|
||||
<div class="container">
|
||||
{% include 'messages.html' %}
|
||||
|
||||
{% if logged_in %}
|
||||
{% if proposal %}
|
||||
{% set headline = proposal.headline %}
|
||||
|
|
7
wowfunding/validation.py
Normal file
7
wowfunding/validation.py
Normal file
|
@ -0,0 +1,7 @@
|
|||
def val_username(value):
|
||||
if len(value) >= 20:
|
||||
raise Exception("username too long")
|
||||
|
||||
def val_email(value):
|
||||
if len(value) >= 50:
|
||||
raise Exception("email too long")
|
Loading…
Reference in a new issue