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):
|
def __repr__(self):
|
||||||
return '<User %r>' % self.username
|
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):
|
class Proposal(base):
|
||||||
__tablename__ = "proposals"
|
__tablename__ = "proposals"
|
||||||
|
@ -91,6 +109,8 @@ class Proposal(base):
|
||||||
raise Exception('wrong category')
|
raise Exception('wrong category')
|
||||||
self.category = category
|
self.category = category
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def json(self):
|
def json(self):
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -142,14 +142,16 @@ def register():
|
||||||
if request.method == 'GET':
|
if request.method == 'GET':
|
||||||
return make_response(render_template('register.html'))
|
return make_response(render_template('register.html'))
|
||||||
|
|
||||||
|
username = request.form['username']
|
||||||
|
password = request.form['password']
|
||||||
|
email = request.form['email']
|
||||||
|
|
||||||
try:
|
try:
|
||||||
user = User(request.form['username'], request.form['password'], request.form['email'])
|
user = User.add(username, password, email)
|
||||||
db_session.add(user)
|
flash('Successfully registered. No confirmation email required. You can login!')
|
||||||
db_session.commit()
|
|
||||||
flash('User successfully registered')
|
|
||||||
return redirect(url_for('login'))
|
return redirect(url_for('login'))
|
||||||
except Exception as ex:
|
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'))
|
return make_response(render_template('register.html'))
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,19 +2,7 @@
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<!--main-->
|
<!--main-->
|
||||||
<div class="container" id="main">
|
<div class="container" id="main">
|
||||||
<div class="row">
|
{% include 'messages.html' %}
|
||||||
<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>
|
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<style>
|
<style>
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
<!-- Page Content -->
|
<!-- Page Content -->
|
||||||
|
|
||||||
<div class="container" style="margin-bottom:140px;">
|
<div class="container" style="margin-bottom:140px;">
|
||||||
|
{% include 'messages.html' %}
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
<!-- Page Content -->
|
<!-- Page Content -->
|
||||||
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
|
{% include 'messages.html' %}
|
||||||
|
|
||||||
{% if logged_in %}
|
{% if logged_in %}
|
||||||
{% if proposal %}
|
{% if proposal %}
|
||||||
{% set headline = proposal.headline %}
|
{% 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