diff --git a/data/model.py b/data/model.py index 864ce1e2a..a10a560fc 100644 --- a/data/model.py +++ b/data/model.py @@ -112,9 +112,17 @@ def create_team(name, org, team_role_name, description=''): description=description) -def remove_team(name, org): - # TODO: have code to remove the team, and all its repo permissions, etc. - pass +def remove_team(org_name, team_name): + found = list(Team.select().join(User).where(User.organization == True, + User.username == org_name, + Team.name == team_name)) + if not found: + raise InvalidTeamException('Team named: %s is not a team in org: %s' % + (team_name, org_name)) + + team = found[0] + team.delete_instance(recursive=True, delete_nullable=True) + def add_user_to_team(user, team): return TeamMember.create(user=user, team=team) @@ -207,7 +215,7 @@ def validate_reset_code(code): def get_user(username): try: - return User.get(User.username == username) + return User.get(User.username == username, User.organization == False) except User.DoesNotExist: return None diff --git a/endpoints/api.py b/endpoints/api.py index 2e5ff3b21..b5db0d544 100644 --- a/endpoints/api.py +++ b/endpoints/api.py @@ -346,9 +346,9 @@ def update_organization_team(orgname, teamname): @app.route('/api/organization//team/', methods=['DELETE']) def delete_organization_team(orgname, teamname): - edit_permission = AdministerOrganizationPermission(orgname) - if edit_permission.can(): - model.remove_team(teamname, orgname) + permission = AdministerOrganizationPermission(orgname) + if permission.can(): + model.remove_team(orgname, teamname) return make_response('Deleted', 204) abort(403)