Skip to content

Commit

Permalink
allow children to be deleted without remove_child on parent
Browse files Browse the repository at this point in the history
  • Loading branch information
dvoet committed Feb 5, 2021
1 parent 87df68e commit 99f5b3a
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -270,9 +270,7 @@ trait ResourceRoutes extends UserInfoDirectives with SecurityDirectives with Sam
def deleteResource(resource: FullyQualifiedResourceId, userInfo: UserInfo, samRequestContext: SamRequestContext): server.Route =
delete {
requireAction(resource, SamResourceActions.delete, userInfo.userId, samRequestContext) {
requireParentAction(resource, None, SamResourceActions.removeChild, userInfo.userId, samRequestContext) {
complete(resourceService.deleteResource(resource, samRequestContext).map(_ => StatusCodes.NoContent))
}
complete(resourceService.deleteResource(resource, samRequestContext).map(_ => StatusCodes.NoContent))
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1413,21 +1413,6 @@ class ResourceRoutesV2Spec extends AnyFlatSpec with Matchers with TestSupport wi
}
}

it should "403 if user is missing remove_child on parent resource if it exists" in {
val childResource = FullyQualifiedResourceId(defaultResourceType.name, ResourceId("child"))
val currentParentResource = FullyQualifiedResourceId(defaultResourceType.name, ResourceId("currentParent"))
val samRoutes = createSamRoutes(Map(defaultResourceType.name -> defaultResourceType))

setupParentRoutes(samRoutes, childResource,
currentParentOpt = Option(currentParentResource),
actionsOnChild = Set(SamResourceActions.setParent, SamResourceActions.delete),
actionsOnCurrentParent = Set(SamResourceActions.readPolicies))

Delete(s"/api/resources/v2/${defaultResourceType.name}/${childResource.resourceId.value}") ~> samRoutes.route ~> check {
status shouldEqual StatusCodes.Forbidden
}
}

"GET /api/resources/v2/{resourceType}/{resourceId}/policies/{policyName}" should "200 on existing policy of a resource with read_policies" in {
val members = AccessPolicyMembership(Set(defaultUserInfo.userEmail), Set.empty, Set.empty, None)
val resource = FullyQualifiedResourceId(defaultResourceType.name, ResourceId("resource"))
Expand Down

0 comments on commit 99f5b3a

Please sign in to comment.