diff --git a/atst/domain/application_roles.py b/atst/domain/application_roles.py index 76e81089..826f7f6c 100644 --- a/atst/domain/application_roles.py +++ b/atst/domain/application_roles.py @@ -1,6 +1,7 @@ from sqlalchemy.orm.exc import NoResultFound from atst.database import db +from atst.domain.environment_roles import EnvironmentRoles from atst.models import ApplicationRole, ApplicationRoleStatus from .permission_sets import PermissionSets from .exceptions import NotFoundError @@ -81,5 +82,13 @@ class ApplicationRoles(object): @classmethod def disable(cls, application_role): + cls._update_status(application_role, ApplicationRoleStatus.DISABLED) application_role.deleted = True - return cls._update_status(application_role, ApplicationRoleStatus.DISABLED) + + for env in application_role.application.environments: + EnvironmentRoles.delete( + application_role_id=application_role.id, environment_id=env.id + ) + + db.session.add(application_role) + db.session.commit()