Fix bug in application member deletion

This commit is contained in:
richard-dds 2019-06-10 16:43:47 -04:00
parent 0bd9d4bbb6
commit 30ef2a67ef
4 changed files with 33 additions and 12 deletions

View File

@ -128,15 +128,11 @@ class Applications(BaseDomainClass):
return invitation return invitation
@classmethod @classmethod
def remove_member(cls, application, user_id): def remove_member(cls, application_role):
application_role = ApplicationRoles.get(
user_id=user_id, application_id=application.id
)
application_role.status = ApplicationRoleStatus.DISABLED application_role.status = ApplicationRoleStatus.DISABLED
application_role.deleted = True application_role.deleted = True
for env in application.environments: for env in application_role.application.environments:
EnvironmentRoles.delete( EnvironmentRoles.delete(
application_role_id=application_role.id, environment_id=env.id application_role_id=application_role.id, environment_id=env.id
) )

View File

@ -189,14 +189,15 @@ def create_member(application_id):
def remove_member(application_id, application_role_id): def remove_member(application_id, application_role_id):
application_role = ApplicationRoles.get_by_id(application_role_id) application_role = ApplicationRoles.get_by_id(application_role_id)
Applications.remove_member( user_name = "a user"
application=g.application, user_id=application_role.user_id if application_role.user:
) user_name = application_role.user.full_name
user = Users.get(application_role.user_id)
Applications.remove_member(application_role)
flash( flash(
"application_member_removed", "application_member_removed",
user_name=user.full_name, user_name=user_name,
application_name=g.application.name, application_name=g.application.name,
) )

View File

@ -147,7 +147,7 @@ def test_remove_member():
user_id=user.id, application_id=application.id user_id=user.id, application_id=application.id
) )
Applications.remove_member(application=application, user_id=member_role.user.id) Applications.remove_member(member_role)
assert ( assert (
ApplicationRoles.get(user_id=user.id, application_id=application.id).status ApplicationRoles.get(user_id=user.id, application_id=application.id).status

View File

@ -218,6 +218,30 @@ def test_remove_member_success(client, user_session):
) )
def test_remove_new_member_success(client, user_session):
application = ApplicationFactory.create()
application_role = ApplicationRoleFactory.create(application=application, user=None)
user_session(application.portfolio.owner)
response = client.post(
url_for(
"applications.remove_member",
application_id=application.id,
application_role_id=application_role.id,
)
)
assert response.status_code == 302
assert response.location == url_for(
"applications.team",
_anchor="application-members",
_external=True,
application_id=application.id,
fragment="application-members",
)
def test_remove_member_failure(client, user_session): def test_remove_member_failure(client, user_session):
user = UserFactory.create() user = UserFactory.create()
application = ApplicationFactory.create() application = ApplicationFactory.create()