diff --git a/atst/domain/users.py b/atst/domain/users.py index a75a1f28..8fa0ae91 100644 --- a/atst/domain/users.py +++ b/atst/domain/users.py @@ -87,6 +87,18 @@ class Users(object): return user + @classmethod + def update_ccpo_permissions(cls, user, add_perms=False): + if add_perms: + permission_sets = PermissionSets.get_all() + else: + permission_sets = [] + + user.permission_sets = permission_sets + db.session.add(user) + db.session.commit() + return user + @classmethod def update_last_login(cls, user): user.last_login = datetime.now() diff --git a/atst/routes/__init__.py b/atst/routes/__init__.py index f0e05aec..034d9956 100644 --- a/atst/routes/__init__.py +++ b/atst/routes/__init__.py @@ -154,7 +154,7 @@ def add_new_ccpo_user(): @user_can(Permissions.CREATE_CCPO_USER, message="create ccpo user") def submit_add_new_ccpo_user(): try: - new_user = Users.get_by_dod_id(request.form['dod_id']) + new_user = Users.get_by_dod_id(request.form["dod_id"]) form = CCPOUserForm(obj=new_user) except NotFoundError: new_user = None @@ -166,9 +166,9 @@ def submit_add_new_ccpo_user(): @bp.route("/ccpo-users/confirm-new", methods=["POST"]) @user_can(Permissions.CREATE_CCPO_USER, message="create ccpo user") def confirm_new_ccpo_user(): - new_user = Users.get_by_dod_id(request.form['dod_id']) - # give new perms here - # flash w/ success message + user = Users.get_by_dod_id(request.form["dod_id"]) + Users.update_ccpo_permissions(user, add_perms=True) + flash("ccpo_user_added", user_name=user.full_name) return redirect(url_for("atst.ccpo_users")) diff --git a/atst/utils/context_processors.py b/atst/utils/context_processors.py index 09423204..7d39b367 100644 --- a/atst/utils/context_processors.py +++ b/atst/utils/context_processors.py @@ -122,7 +122,4 @@ def portfolio(): def atat(): - return { - "permissions": Permissions, - "user_can": user_can_view, - } + return {"permissions": Permissions, "user_can": user_can_view} diff --git a/atst/utils/flash.py b/atst/utils/flash.py index 0ea62028..e7fc72d7 100644 --- a/atst/utils/flash.py +++ b/atst/utils/flash.py @@ -30,6 +30,11 @@ MESSAGES = { "message_template": "You have successfully deleted {{ user_name }} from {{ application_name }}", "category": "success", }, + "ccpo_user_added": { + "title_template": translate("flash.success"), + "message_template": "You have successfully given {{ user_name }} CCPO permissions.", + "category": "success", + }, "environment_added": { "title_template": translate("flash.success"), "message_template": """ diff --git a/templates/ccpo/users.html b/templates/ccpo/users.html index df2b7324..7e29a1d6 100644 --- a/templates/ccpo/users.html +++ b/templates/ccpo/users.html @@ -7,6 +7,9 @@