public void removeMember(DavResource davResource) throws DavException {
String[] pathComponents = StringUtils.split(davResource.getResourcePath(), '/');
String resourceName = pathComponents[pathComponents.length - 1];
Space thisSpace = getSpace();
User user = AuthenticatedUserThreadLocal.getUser();
if (isResourceSpaceDescription(thisSpace, resourceName)) {
if (permissionManager.hasPermission(user, Permission.EDIT, thisSpace))
((ConfluenceDavSession) getSession()).getResourceStates().hideSpaceDescription(thisSpace);
else
throw new DavException(HttpServletResponse.SC_FORBIDDEN, "No permission to edit " + thisSpace);
} else {
Page pageToRemove = pageManager.getPage(thisSpace.getKey(), resourceName);
if (null == pageToRemove) {
ContentEntityObject spaceDesc = getSpace().getDescription();
Attachment attachmentToRemove = attachmentManager.getAttachment(spaceDesc, resourceName);
if (null != attachmentToRemove) {
attachmentManager.removeAttachmentFromServer(attachmentToRemove);
}
} else {
if (permissionManager.hasPermission(
AuthenticatedUserThreadLocal.getUser(),
Permission.REMOVE,
pageToRemove)) {
pageManager.trashPage(pageToRemove);
} else {
throw new DavException(HttpServletResponse.SC_FORBIDDEN, "Forbidden to delete " + pageToRemove);
}
}
}
}