mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-17 21:19:38 -04:00
@@ -51,8 +51,7 @@ def activate_user(user):
|
||||
def update_email_address(id, email_address):
|
||||
user = get_user_by_id(id)
|
||||
user.email_address = email_address
|
||||
db.session.add(user)
|
||||
db.session.commit()
|
||||
return user_api_client.update_user(user)
|
||||
|
||||
|
||||
def update_mobile_number(id, mobile_number):
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
from flask import render_template
|
||||
from flask import render_template, url_for, redirect
|
||||
from app.main import main
|
||||
from flask_login import login_required
|
||||
|
||||
from flask.ext.login import current_user
|
||||
|
||||
|
||||
@main.route('/')
|
||||
def index():
|
||||
if current_user and current_user.is_authenticated():
|
||||
return redirect(url_for('main.choose_service'))
|
||||
return render_template('views/signedout.html')
|
||||
|
||||
|
||||
|
||||
@@ -4,9 +4,12 @@ from flask import (
|
||||
render_template,
|
||||
redirect,
|
||||
session,
|
||||
abort
|
||||
abort,
|
||||
url_for
|
||||
)
|
||||
|
||||
from flask.ext.login import current_user
|
||||
|
||||
from client.errors import HTTPError
|
||||
|
||||
from app.main import main
|
||||
@@ -22,6 +25,9 @@ from app.notify_client.sender import send_sms_code, send_email_code
|
||||
|
||||
@main.route('/register', methods=['GET', 'POST'])
|
||||
def register():
|
||||
if current_user and current_user.is_authenticated():
|
||||
return redirect(url_for('main.choose_service'))
|
||||
|
||||
form = RegisterUserForm(users_dao.get_user_by_email)
|
||||
|
||||
if form.validate_on_submit():
|
||||
|
||||
@@ -7,6 +7,9 @@ from flask import (
|
||||
)
|
||||
|
||||
|
||||
from flask.ext.login import current_user
|
||||
|
||||
|
||||
from app.main import main
|
||||
from app.main.dao import users_dao
|
||||
from app.main.forms import LoginForm
|
||||
@@ -15,6 +18,8 @@ from app.notify_client.sender import send_sms_code
|
||||
|
||||
@main.route('/sign-in', methods=(['GET', 'POST']))
|
||||
def sign_in():
|
||||
if current_user and current_user.is_authenticated():
|
||||
return redirect(url_for('main.choose_service'))
|
||||
try:
|
||||
form = LoginForm()
|
||||
if form.validate_on_submit():
|
||||
|
||||
@@ -22,6 +22,7 @@ def verify():
|
||||
user_id = session['user_details']['id']
|
||||
codes = verify_codes_dao.get_codes(user_id)
|
||||
form = VerifyForm(codes)
|
||||
|
||||
if form.validate_on_submit():
|
||||
verify_codes_dao.use_code_for_user_and_type(user_id=user_id, code_type='email')
|
||||
verify_codes_dao.use_code_for_user_and_type(user_id=user_id, code_type='sms')
|
||||
|
||||
@@ -73,29 +73,14 @@ class UserApiClient(BaseAPIClient):
|
||||
|
||||
class User(object):
|
||||
def __init__(self, fields, max_failed_login_count=3):
|
||||
self.fields = fields
|
||||
self.max_failed_login_count = max_failed_login_count
|
||||
self._id = fields.get('id')
|
||||
self._name = fields.get('name')
|
||||
self._email_address = fields.get('email_address')
|
||||
self._mobile_number = fields.get('mobile_number')
|
||||
self._password_changed_at = fields.get('password_changed_at')
|
||||
self._failed_login_count = 0
|
||||
|
||||
@property
|
||||
def id(self):
|
||||
return self.fields.get('id')
|
||||
|
||||
@property
|
||||
def name(self):
|
||||
return self.fields.get('name')
|
||||
|
||||
@property
|
||||
def email_address(self):
|
||||
return self.fields.get('email_address')
|
||||
|
||||
@property
|
||||
def mobile_number(self):
|
||||
return self.fields.get('mobile_number')
|
||||
|
||||
@property
|
||||
def password_changed_at(self):
|
||||
return self.fields.get('password_changed_at')
|
||||
self._state = fields.get('state')
|
||||
self.max_failed_login_count = max_failed_login_count
|
||||
|
||||
def get_id(self):
|
||||
return self.id
|
||||
@@ -106,13 +91,53 @@ class User(object):
|
||||
def is_active(self):
|
||||
return self.state == 'active'
|
||||
|
||||
@property
|
||||
def id(self):
|
||||
return self._id
|
||||
|
||||
@id.setter
|
||||
def id(self, id):
|
||||
self._id = id
|
||||
|
||||
@property
|
||||
def name(self):
|
||||
return self._name
|
||||
|
||||
@name.setter
|
||||
def name(self, name):
|
||||
self._name = name
|
||||
|
||||
@property
|
||||
def email_address(self):
|
||||
return self._email_address
|
||||
|
||||
@email_address.setter
|
||||
def email_address(self, email_address):
|
||||
self._email_address = email_address
|
||||
|
||||
@property
|
||||
def mobile_number(self):
|
||||
return self._mobile_number
|
||||
|
||||
@mobile_number.setter
|
||||
def mobile_number(self, mobile_number):
|
||||
self._mobile_number = mobile_number
|
||||
|
||||
@property
|
||||
def password_changed_at(self):
|
||||
return self._password_changed_at
|
||||
|
||||
@password_changed_at.setter
|
||||
def password_changed_at(self, password_changed_at):
|
||||
self._password_changed_at = password_changed_at
|
||||
|
||||
@property
|
||||
def state(self):
|
||||
return self.fields['state']
|
||||
return self._state
|
||||
|
||||
@state.setter
|
||||
def state(self, state):
|
||||
self.fields['state'] = state
|
||||
self._state = state
|
||||
|
||||
@property
|
||||
def failed_login_count(self):
|
||||
@@ -126,7 +151,15 @@ class User(object):
|
||||
return False
|
||||
|
||||
def is_locked(self):
|
||||
return self.failed_login_count > self.max_failed_login_count
|
||||
return self.failed_login_count >= self.max_failed_login_count
|
||||
|
||||
def serialize(self):
|
||||
return self.fields
|
||||
return {"id": self.id,
|
||||
"name": self.name,
|
||||
"email_address": self.email_address,
|
||||
"mobile_number": self.mobile_number,
|
||||
"password_changed_at": self.password_changed_at,
|
||||
"state": self.state,
|
||||
"failed_login_count": self.failed_login_count,
|
||||
"is_locked": self.is_locked()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user