Handle AlreadyExistsError on user creation with non-unique email
This commit is contained in:
parent
e5753762fa
commit
3c95063293
@ -9,12 +9,12 @@ def make_error_pages(app):
|
|||||||
# pylint: disable=unused-variable
|
# pylint: disable=unused-variable
|
||||||
def not_found(e):
|
def not_found(e):
|
||||||
app.logger.error(e.message)
|
app.logger.error(e.message)
|
||||||
return render_template("not_found.html"), 404
|
return render_template("error.html", message="Not Found"), 404
|
||||||
|
|
||||||
@app.errorhandler(exceptions.UnauthenticatedError)
|
@app.errorhandler(exceptions.UnauthenticatedError)
|
||||||
# pylint: disable=unused-variable
|
# pylint: disable=unused-variable
|
||||||
def unauthorized(e):
|
def unauthorized(e):
|
||||||
app.logger.error(e.message)
|
app.logger.error(e.message)
|
||||||
return render_template("unauthenticated.html"), 401
|
return render_template("error.html", message="Log in Failed"), 401
|
||||||
|
|
||||||
return app
|
return app
|
||||||
|
@ -10,7 +10,7 @@ from flask import (
|
|||||||
url_for,
|
url_for,
|
||||||
)
|
)
|
||||||
|
|
||||||
from atst.domain.exceptions import UnauthorizedError
|
from atst.domain.exceptions import UnauthorizedError, AlreadyExistsError
|
||||||
from atst.domain.projects import Projects
|
from atst.domain.projects import Projects
|
||||||
from atst.domain.reports import Reports
|
from atst.domain.reports import Reports
|
||||||
from atst.domain.workspaces import Workspaces
|
from atst.domain.workspaces import Workspaces
|
||||||
@ -200,6 +200,7 @@ def create_member(workspace_id):
|
|||||||
form = NewMemberForm(http_request.form)
|
form = NewMemberForm(http_request.form)
|
||||||
|
|
||||||
if form.validate():
|
if form.validate():
|
||||||
|
try:
|
||||||
new_member = Workspaces.create_member(g.current_user, workspace, form.data)
|
new_member = Workspaces.create_member(g.current_user, workspace, form.data)
|
||||||
return redirect(
|
return redirect(
|
||||||
url_for(
|
url_for(
|
||||||
@ -208,6 +209,10 @@ def create_member(workspace_id):
|
|||||||
newMemberName=new_member.user_name,
|
newMemberName=new_member.user_name,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
except AlreadyExistsError:
|
||||||
|
return render_template(
|
||||||
|
"error.html", message="There was an error processing your request."
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
return render_template(
|
return render_template(
|
||||||
"workspaces/members/new.html", workspace=workspace, form=form
|
"workspaces/members/new.html", workspace=workspace, form=form
|
||||||
|
@ -4,9 +4,8 @@
|
|||||||
|
|
||||||
<main class="usa-section usa-content">
|
<main class="usa-section usa-content">
|
||||||
|
|
||||||
<h1>Not Found</h1>
|
<h1>{{ message }}</h1>
|
||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
@ -1,12 +0,0 @@
|
|||||||
{% extends "error_base.html" %}
|
|
||||||
|
|
||||||
{% block content %}
|
|
||||||
|
|
||||||
<main class="usa-section usa-content">
|
|
||||||
|
|
||||||
<h1>Log in Failed</h1>
|
|
||||||
|
|
||||||
</main>
|
|
||||||
|
|
||||||
{% endblock %}
|
|
||||||
|
|
@ -2,7 +2,7 @@ import pytest
|
|||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
from atst.domain.users import Users
|
from atst.domain.users import Users
|
||||||
from atst.domain.exceptions import NotFoundError
|
from atst.domain.exceptions import NotFoundError, AlreadyExistsError
|
||||||
|
|
||||||
DOD_ID = "my_dod_id"
|
DOD_ID = "my_dod_id"
|
||||||
|
|
||||||
@ -12,6 +12,12 @@ def test_create_user():
|
|||||||
assert user.atat_role.name == "developer"
|
assert user.atat_role.name == "developer"
|
||||||
|
|
||||||
|
|
||||||
|
def test_create_user_with_existing_email():
|
||||||
|
Users.create(DOD_ID, "developer", email="thisusersemail@usersRus.com")
|
||||||
|
with pytest.raises(AlreadyExistsError):
|
||||||
|
Users.create(DOD_ID, "admin", email="thisusersemail@usersRus.com")
|
||||||
|
|
||||||
|
|
||||||
def test_create_user_with_nonexistent_role():
|
def test_create_user_with_nonexistent_role():
|
||||||
with pytest.raises(NotFoundError):
|
with pytest.raises(NotFoundError):
|
||||||
Users.create(DOD_ID, "nonexistent")
|
Users.create(DOD_ID, "nonexistent")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user