Delete an application member

This commit is contained in:
George Drummond
2019-05-13 10:14:48 -04:00
parent 547d813970
commit 27a4ef12c6
9 changed files with 167 additions and 9 deletions

View File

@@ -3,6 +3,7 @@ from sqlalchemy.orm.exc import NoResultFound
from atst.database import db
from . import BaseDomainClass
from atst.domain.application_roles import ApplicationRoles
from atst.domain.environment_roles import EnvironmentRoles
from atst.domain.environments import Environments
from atst.domain.exceptions import NotFoundError
from atst.domain.users import Users
@@ -100,3 +101,15 @@ class Applications(BaseDomainClass):
Environments.add_member(environment, user, env_role_data.get("role"))
return application_role
@classmethod
def remove_member(cls, application, user):
application_role = ApplicationRoles.get(
user_id=user.id, application_id=application.id
)
db.session.delete(application_role)
db.session.commit()
for env in application.environments:
EnvironmentRoles.delete(user_id=user.id, environment_id=env.id)

View File

@@ -158,3 +158,31 @@ def create_member(application_id):
_anchor="application-members",
)
)
@applications_bp.route(
"/applications/<application_id>/members/<user_id>/delete", methods=["POST"]
)
# TODO: Is this correct??
@user_can(Permissions.EDIT_APPLICATION_MEMBER, message="remove application member")
def remove_member(application_id, user_id):
application_role = ApplicationRoles.get(
application_id=application_id, user_id=user_id
)
Applications.remove_member(application=g.application, user=application_role.user)
flash(
"application_member_removed",
user_name=application_role.user.full_name,
application_name=g.application.name,
)
return redirect(
url_for(
"applications.team",
_anchor="application-members",
application_id=g.application.id,
fragment="application-members",
)
)

View File

@@ -2,6 +2,11 @@ from flask import flash, render_template_string
from atst.utils.localization import translate
MESSAGES = {
"application_member_removed": {
"title_template": "Team member removed from application",
"message_template": "You have successfully deleted {{ user_name }} from {{ application_name }}",
"category": "success",
},
"environment_deleted": {
"title_template": "{{ environment_name }} deleted",
"message_template": 'The environment "{{ environment_name }}" has been deleted',