public void deletePermissibleObject(PermissibleObject permissibleObject) throws SimpleMessageException {
if (permissibleObject == null) {
throw new SimpleMessageException("Object not supplied.");
}
User authUser = getAuthenticatedUser(session.get());
if (authUser == null) {
throw new SimpleMessageException("User is not authenticated.");
}
Transaction tx = session.get().beginTransaction();
permissibleObject = ((PermissibleObject) session.get().load(PermissibleObject.class, permissibleObject.getId()));
try {
if (permissibleObject instanceof Folder) {
Folder folder = (Folder) permissibleObject;
if (!authUser.isAdministrator() && !authUser.equals(folder.getOwner())) {
throw new SimpleMessageException("User is not authorized to delete this object.");
}
FolderHelper.deleteFolder(session.get(), folder);
} else {
if (!SecurityHelper.doesUserHavePermission(session.get(), authUser, permissibleObject, PERM.WRITE)) {