Merge pull request #377 from dod-ccpo/email-not-unique
Handle AlreadyExistsError on user creation with non-unique email
This commit is contained in:
commit
4e24666f16
@ -9,12 +9,12 @@ def make_error_pages(app):
|
||||
# pylint: disable=unused-variable
|
||||
def not_found(e):
|
||||
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)
|
||||
# pylint: disable=unused-variable
|
||||
def unauthorized(e):
|
||||
app.logger.error(e.message)
|
||||
return render_template("unauthenticated.html"), 401
|
||||
return render_template("error.html", message="Log in Failed"), 401
|
||||
|
||||
return app
|
||||
|
@ -10,7 +10,7 @@ from flask import (
|
||||
url_for,
|
||||
)
|
||||
|
||||
from atst.domain.exceptions import UnauthorizedError
|
||||
from atst.domain.exceptions import UnauthorizedError, AlreadyExistsError
|
||||
from atst.domain.projects import Projects
|
||||
from atst.domain.reports import Reports
|
||||
from atst.domain.workspaces import Workspaces
|
||||
@ -200,14 +200,19 @@ def create_member(workspace_id):
|
||||
form = NewMemberForm(http_request.form)
|
||||
|
||||
if form.validate():
|
||||
new_member = Workspaces.create_member(g.current_user, workspace, form.data)
|
||||
return redirect(
|
||||
url_for(
|
||||
"workspaces.workspace_members",
|
||||
workspace_id=workspace.id,
|
||||
newMemberName=new_member.user_name,
|
||||
try:
|
||||
new_member = Workspaces.create_member(g.current_user, workspace, form.data)
|
||||
return redirect(
|
||||
url_for(
|
||||
"workspaces.workspace_members",
|
||||
workspace_id=workspace.id,
|
||||
newMemberName=new_member.user_name,
|
||||
)
|
||||
)
|
||||
except AlreadyExistsError:
|
||||
return render_template(
|
||||
"error.html", message="There was an error processing your request."
|
||||
)
|
||||
)
|
||||
else:
|
||||
return render_template(
|
||||
"workspaces/members/new.html", workspace=workspace, form=form
|
||||
|
@ -4,9 +4,12 @@
|
||||
|
||||
<main class="usa-section usa-content">
|
||||
|
||||
<h1>Not Found</h1>
|
||||
{% if message %}
|
||||
<h1>{{ message }}</h1>
|
||||
{% else %}
|
||||
<h1>An error occurred.</h1>
|
||||
{% endif %}
|
||||
|
||||
</main>
|
||||
|
||||
{% 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 atst.domain.users import Users
|
||||
from atst.domain.exceptions import NotFoundError
|
||||
from atst.domain.exceptions import NotFoundError, AlreadyExistsError
|
||||
|
||||
DOD_ID = "my_dod_id"
|
||||
|
||||
@ -12,6 +12,12 @@ def test_create_user():
|
||||
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():
|
||||
with pytest.raises(NotFoundError):
|
||||
Users.create(DOD_ID, "nonexistent")
|
||||
|
Loading…
x
Reference in New Issue
Block a user