Merge pull request #1018 from dod-ccpo/new-user-dev
Allow creation of new users in dev mode
This commit is contained in:
commit
0410d82359
@ -6,6 +6,7 @@ from atst.domain.users import Users
|
|||||||
UNPROTECTED_ROUTES = [
|
UNPROTECTED_ROUTES = [
|
||||||
"atst.root",
|
"atst.root",
|
||||||
"dev.login_dev",
|
"dev.login_dev",
|
||||||
|
"dev.dev_new_user",
|
||||||
"atst.login_redirect",
|
"atst.login_redirect",
|
||||||
"atst.logout",
|
"atst.logout",
|
||||||
"atst.unauthorized",
|
"atst.unauthorized",
|
||||||
|
@ -11,12 +11,14 @@ from flask import (
|
|||||||
import pendulum
|
import pendulum
|
||||||
|
|
||||||
from . import redirect_after_login_url, current_user_setup
|
from . import redirect_after_login_url, current_user_setup
|
||||||
|
from atst.domain.exceptions import AlreadyExistsError, NotFoundError
|
||||||
from atst.domain.users import Users
|
from atst.domain.users import Users
|
||||||
from atst.domain.permission_sets import PermissionSets
|
from atst.domain.permission_sets import PermissionSets
|
||||||
from atst.forms.data import SERVICE_BRANCHES
|
from atst.forms.data import SERVICE_BRANCHES
|
||||||
from atst.queue import queue
|
from atst.queue import queue
|
||||||
from atst.utils import pick
|
from atst.utils import pick
|
||||||
|
|
||||||
|
|
||||||
bp = Blueprint("dev", __name__)
|
bp = Blueprint("dev", __name__)
|
||||||
|
|
||||||
_ALL_PERMS = [
|
_ALL_PERMS = [
|
||||||
@ -110,31 +112,66 @@ _DEV_USERS = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class IncompleteInfoError(Exception):
|
||||||
|
@property
|
||||||
|
def message(self):
|
||||||
|
return "You must provide each of: first_name, last_name and dod_id"
|
||||||
|
|
||||||
|
|
||||||
@bp.route("/login-dev")
|
@bp.route("/login-dev")
|
||||||
def login_dev():
|
def login_dev():
|
||||||
role = request.args.get("username", "amanda")
|
dod_id = request.args.get("dod_id", None)
|
||||||
user_data = _DEV_USERS[role]
|
|
||||||
user = Users.get_or_create_by_dod_id(
|
if dod_id is not None:
|
||||||
user_data["dod_id"],
|
user = Users.get_by_dod_id(dod_id)
|
||||||
**pick(
|
else:
|
||||||
[
|
role = request.args.get("username", "amanda")
|
||||||
"permission_sets",
|
user_data = _DEV_USERS[role]
|
||||||
"first_name",
|
user = Users.get_or_create_by_dod_id(
|
||||||
"last_name",
|
user_data["dod_id"],
|
||||||
"email",
|
**pick(
|
||||||
"service_branch",
|
[
|
||||||
"phone_number",
|
"permission_sets",
|
||||||
"citizenship",
|
"first_name",
|
||||||
"designation",
|
"last_name",
|
||||||
"date_latest_training",
|
"email",
|
||||||
],
|
"service_branch",
|
||||||
user_data,
|
"phone_number",
|
||||||
),
|
"citizenship",
|
||||||
)
|
"designation",
|
||||||
|
"date_latest_training",
|
||||||
|
],
|
||||||
|
user_data,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
current_user_setup(user)
|
current_user_setup(user)
|
||||||
return redirect(redirect_after_login_url())
|
return redirect(redirect_after_login_url())
|
||||||
|
|
||||||
|
|
||||||
|
@bp.route("/dev-new-user")
|
||||||
|
def dev_new_user():
|
||||||
|
first_name = request.args.get("first_name", None)
|
||||||
|
last_name = request.args.get("last_name", None)
|
||||||
|
dod_id = request.args.get("dod_id", None)
|
||||||
|
|
||||||
|
if None in [first_name, last_name, dod_id]:
|
||||||
|
raise IncompleteInfoError()
|
||||||
|
|
||||||
|
try:
|
||||||
|
Users.get_by_dod_id(dod_id)
|
||||||
|
raise AlreadyExistsError("User with dod_id {}".format(dod_id))
|
||||||
|
except NotFoundError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
new_user = {"first_name": first_name, "last_name": last_name}
|
||||||
|
|
||||||
|
created_user = Users.create(dod_id, **new_user)
|
||||||
|
|
||||||
|
current_user_setup(created_user)
|
||||||
|
return redirect(redirect_after_login_url())
|
||||||
|
|
||||||
|
|
||||||
@bp.route("/test-email")
|
@bp.route("/test-email")
|
||||||
def test_email():
|
def test_email():
|
||||||
queue.send_mail(
|
queue.send_mail(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user