public Map<String, Object> unpublishEvent(String identifier) throws PortalException, SystemException, DotDataException, DotSecurityException { Map<String, Object> callbackData = new HashMap<String, Object>(); // DOTCMS-5199 List<String> eventUnpublishErrors = new ArrayList<String>(); HibernateUtil.startTransaction(); WebContext ctx = WebContextFactory.get(); HttpServletRequest request = ctx.getHttpServletRequest(); // Retrieving the current user User user = userAPI.getLoggedInUser(request); boolean respectFrontendRoles = true; Event ev = eventAPI.find(identifier, false, user, respectFrontendRoles); try { contAPI.unpublish(ev, user, respectFrontendRoles); } catch (DotSecurityException e) { eventUnpublishErrors.add(e.getLocalizedMessage()); } catch (DotDataException e) { eventUnpublishErrors.add(e.getLocalizedMessage()); } catch (DotContentletStateException e) { eventUnpublishErrors.add(e.getLocalizedMessage()); } finally { if (eventUnpublishErrors.size() > 0) { callbackData.put("eventUnpublishErrors", eventUnpublishErrors); } } HibernateUtil.commitTransaction(); if (!contAPI.isInodeIndexed(ev.getInode())) { Logger.error(this, "Timed out while waiting for index to return"); } return callbackData; }
public Map<String, Object> deleteEvent(String identifier) throws PortalException, SystemException, DotDataException, DotSecurityException { HibernateUtil.startTransaction(); WebContext ctx = WebContextFactory.get(); HttpServletRequest request = ctx.getHttpServletRequest(); List<String> eventDeleteErrors = new ArrayList<String>(); Map<String, Object> callbackData = new HashMap<String, Object>(); // Retrieving the current user User user = userAPI.getLoggedInUser(request); boolean respectFrontendRoles = true; Event ev = eventAPI.find(identifier, false, user, respectFrontendRoles); if (ev.isLive()) { try { contAPI.unpublish(ev, user, respectFrontendRoles); } catch (DotSecurityException e) { eventDeleteErrors.add(e.getLocalizedMessage()); } catch (DotDataException e) { eventDeleteErrors.add(e.getLocalizedMessage()); } catch (DotContentletStateException e) { eventDeleteErrors.add(e.getLocalizedMessage()); } try { contAPI.archive(ev, user, respectFrontendRoles); } catch (Exception e) { eventDeleteErrors.add(e.getLocalizedMessage()); } } else if (!ev.isArchived()) { try { contAPI.archive(ev, user, respectFrontendRoles); } catch (Exception e) { eventDeleteErrors.add(e.getLocalizedMessage()); } } try { if (ev.isArchived()) { contAPI.delete(ev, user, respectFrontendRoles); } } catch (Exception e) { eventDeleteErrors.add(e.getLocalizedMessage()); } finally { if (eventDeleteErrors.size() > 0) { callbackData.put("eventUnpublishErrors", eventDeleteErrors); } } if (eventDeleteErrors.size() <= 0) { HibernateUtil.commitTransaction(); } // At this point we already deleted the content from the index on the delete call /*if(!contAPI.isInodeIndexed(ev.getInode())){ Logger.error(this, "Timed out while waiting for index to return"); }*/ return callbackData; }