@Override public void runSync(Event event) { DocumentEventContext eventContext = (DocumentEventContext) event.getContext(); CoreSession session = eventContext.getCoreSession(); try { AcarenSilentProcessRunnerHelper runner = new InheritanceSilentModeRunner(session, event, false); runner.silentRun(true, FILTERED_SERVICES_LIST); } catch (ClientException e) { log.error("Failed to run the inheritance process, error: " + e.getMessage()); } }
@Override public void runAsync(Event event) { DocumentEventContext eventContext = (DocumentEventContext) event.getContext(); CoreSession session = eventContext.getCoreSession(); try { AcarenSilentProcessRunnerHelper runner = new InheritanceSilentModeRunner(session, event, true); runner.silentRun(true, FILTERED_SERVICES_LIST); } catch (ClientException e) { log.error("Failed to run the inheritance process, error: " + e.getMessage()); } }
private void setModifiedDocMetaData(Event event) throws ClientException { DocumentEventContext eventContext = (DocumentEventContext) event.getContext(); DocumentModel doc = eventContext.getSourceDocument(); AcarenSilentProcessRunnerHelper runner = new InnerSetModifiedDocMetaData(eventContext.getCoreSession(), doc); runner.silentRun(true); }
private void setMovedDocMetaData(Event event) throws ClientException { DocumentEventContext eventContext = (DocumentEventContext) event.getContext(); DocumentModel doc = eventContext.getSourceDocument(); AcarenSilentProcessRunnerHelper runner = new InnerSetMovedDocMetaData(eventContext.getCoreSession(), doc); runner.silentRun(true); }
@Override public void handleEvent(final Event event) throws ClientException { if (event.getContext() instanceof DocumentEventContext) { final DocumentEventContext eventContext = (DocumentEventContext) event.getContext(); final DocumentModel doc = eventContext.getSourceDocument(); if (UAR_DEMANDE_IMPRESSION_DOC_TYPE.equals(doc.getType())) { if (doc.isImmutable()) { return; } try { ToutaticeOperationHelper.runOperationChain(eventContext.getCoreSession(), OPERATION_CHAIN_NAME, doc); } catch (final ToutaticeException e) { log.info("Failed to execute the operation chain '" + OPERATION_CHAIN_NAME + "', error: " + e.getCause().getMessage()); FacesMessages.instance().add(Severity.WARN, e.getCause().getMessage(), new Object()); } } } }
@Override public void handleEvent(Event event) { if (DocumentEventTypes.ABOUT_TO_REMOVE.equals(event.getName())) { DocumentEventContext context = (DocumentEventContext) event.getContext(); DocumentModel dm = context.getSourceDocument(); CoreSession coreSession = context.getCoreSession(); List<Task> tasks = getTaskService().getTaskInstances(dm, (NuxeoPrincipal) null, coreSession); if (!tasks.isEmpty()) { for (Task task : tasks) { getTaskService().deleteTask(coreSession, task.getId()); } } } }
@Override public void handleEvent(Event event) { if (!(event.getContext() instanceof DocumentEventContext)) { return; } DocumentEventContext ctx = (DocumentEventContext) event.getContext(); DocumentModel srcDoc = ctx.getSourceDocument(); if (!TYPE_NAME.equals(srcDoc.getType())) { return; } CoreSession session = ctx.getCoreSession(); List<String> flags = Arrays.asList(PROP_LATEST_FT, PROP_LATEST_LTS); flags.forEach(flag -> { if (isFalse((Boolean) srcDoc.getPropertyValue(flag))) { return; } String query = String.format(DISTRIBUTION_QUERY, TYPE_NAME, flag); session.query(query) .stream() .filter(doc -> srcDoc.getId() == null || !doc.getId().equals(srcDoc.getId())) .forEach(doc -> { doc.setPropertyValue(flag, false); session.saveDocument(doc); }); }); }
public void handleEvent(Event event) { if (DocumentEventTypes.DOCUMENT_REMOVED.equals(event.getName())) { EventContext ctx = event.getContext(); if (ctx instanceof DocumentEventContext) { DocumentEventContext docCtx = (DocumentEventContext) ctx; DocumentModel doc = docCtx.getSourceDocument(); CoreSession coreSession = docCtx.getCoreSession(); CommentServiceConfig config = CommentServiceHelper.getCommentService().getConfig(); RelationManager relationManager = Framework.getService(RelationManager.class); doProcess(coreSession, relationManager, config, doc); return; } } }
@Override public void handleEvent(EventBundle events) { if (!events.containsEventName(ThumbnailConstants.EventNames.scheduleThumbnailUpdate.name())) { return; } Set<String> processedDocs = new HashSet<>(); for (Event event : events) { if (!ThumbnailConstants.EventNames.scheduleThumbnailUpdate.name().equals(event.getName())) { continue; } DocumentEventContext context = (DocumentEventContext) event.getContext(); DocumentModel doc = context.getSourceDocument(); if (doc instanceof DeletedDocumentModel) { continue; } if (doc.isProxy()) { continue; } if (processedDocs.contains(doc.getId())) { continue; } CoreSession repo = context.getCoreSession(); processDoc(repo, doc); processedDocs.add(doc.getId()); } } }
public void handleEvent(Event event) throws ClientException { if (event.getContext() instanceof DocumentEventContext) { DocumentEventContext eventContext = (DocumentEventContext) event.getContext(); DocumentModel doc = eventContext.getSourceDocument(); String parentPath = (String) eventContext.getProperty("parentPath"); UnrestrictedSessionRunner runner = new InnerPreSetMetaData(eventContext.getCoreSession(), doc, parentPath); runner.runUnrestricted(); } }
@Override public void handleEvent(Event event) throws ClientException { if (event.getContext() instanceof DocumentEventContext) { DocumentEventContext ctx = (DocumentEventContext) event.getContext(); DocumentModel movedDocument = ctx.getSourceDocument(); CoreSession session = ctx.getCoreSession(); // filtrer les documents de type proxy pour éviter les boucles de traitement if (!movedDocument.isProxy()) { UnrestrictedSessionRunner runner = new UnrestrictedMoveProxyRunner(session, ctx, movedDocument); runner.runUnrestricted(); } } }
@Override public void handleEvent(Event event) throws NuxeoException { if (event.getContext() instanceof DocumentEventContext) { DocumentEventContext ctx = (DocumentEventContext) event.getContext(); DocumentModel movedDocument = ctx.getSourceDocument(); CoreSession session = ctx.getCoreSession(); // filtrer les documents de type proxy pour éviter les boucles de traitement if (!movedDocument.isProxy()) { UnrestrictedSessionRunner runner = new UnrestrictedMoveProxyRunner(session, ctx, movedDocument); runner.runUnrestricted(); } } }
@Override public void handleEvent(Event event) { DocumentEventContext ctx = (DocumentEventContext) event.getContext(); DocumentModel userProfileDocument = ctx.getSourceDocument(); // The document should be the current user profile doc if (!userProfileDocument.hasFacet("UserProfile")) { return; } // No need to sync Seam session for system user if (ctx.getPrincipal() instanceof SystemPrincipal) { log.debug("Skip locale update for system user"); return; } // if the profile does not belong to the current user // => no need to sync Seam session UserWorkspaceService uws = Framework.getService(UserWorkspaceService.class); DocumentModel userWorkspace = uws.getCurrentUserPersonalWorkspace(ctx.getCoreSession(), userProfileDocument); if (!userProfileDocument.getPathAsString().startsWith(userWorkspace.getPathAsString())) { return; } // performing the locale update LocaleStartup localeStartup = LocaleStartup.instance(); if (localeStartup == null) { log.warn("Locale Startup not available. Can't set locale"); return; } localeStartup.setupLocale(userProfileDocument); }
@Override public void handleEvent(Event event) { if (!DocumentRoutingConstants.Events.afterRouteFinish.name().equals(event.getName())) { return; } DocumentEventContext docCtx = (DocumentEventContext) event.getContext(); CoreSession session = docCtx.getCoreSession(); DocumentModel routeInstanceDoc = docCtx.getSourceDocument(); List<Task> openTasks = Framework.getService(TaskService.class).getAllTaskInstances( routeInstanceDoc.getId(), session); for (Task task : openTasks) { getDocumentRoutingService().cancelTask(session, task.getId()); } }
@Override public void handleEvent(Event event) { if (!DocumentEventTypes.DOCUMENT_CHECKEDIN.equals(event.getName())) { return; } if (!(event.getContext() instanceof DocumentEventContext)) { log.warn("Can not handle event that is not bound to a DocumentEventContext"); return; } DocumentEventContext context = (DocumentEventContext) event.getContext(); CoreSession session = context.getCoreSession(); DocumentModel docModel = context.getSourceDocument(); if (docModel.hasFacet(NOTIFIABLE_FACET)) { // remove notifications from version DocumentRef versionRef = (DocumentRef) context.getProperty("checkedInVersionRef"); DocumentModel version = session.getDocument(versionRef); version.getAdapter(SubscriptionAdapter.class).clearNotification(); session.saveDocument(version); } } }
/** * Checks unicity of document's title * if document is in Collaborative Space. */ @Override public void handleEvent(Event event) throws NuxeoException { if(event.getContext() instanceof DocumentEventContext) { DocumentEventContext docCtx = (DocumentEventContext) event.getContext(); DocumentModel document = docCtx.getSourceDocument(); if (ToutaticeDocumentHelper.isInWorkspaceLike(docCtx.getCoreSession(), document) && ToutaticeDocumentEventListenerHelper.isAlterableDocument(document)) { // Initial title String initialTitle = (String) document.getPropertyValue("dc:title"); String newTitle = makeUniqueTitle(docCtx, event.getName(), document); if (!StringUtils.equals(initialTitle, newTitle)) { document.setPropertyValue("dc:title", newTitle); } } } }
@Override public void handleEvent(Event event) { EventContext ctx = event.getContext(); if (ctx instanceof DocumentEventContext) { DocumentEventContext docCtx = (DocumentEventContext) ctx; CoreSession session = docCtx.getCoreSession(); DocumentModel doc = docCtx.getSourceDocument(); if (doc == null) { return; } String docId = doc.getId(); TagService tagService = Framework.getService(TagService.class); if (doc instanceof DeletedDocumentModel) { tagService.removeTags(session, docId); return; } DocumentRef versionRef = (DocumentRef) ctx.getProperty("checkedInVersionRef"); if (!tagService.hasFeature(TAGS_BELONG_TO_DOCUMENT)) { if (versionRef instanceof IdRef) { tagService.copyTags(session, docId, versionRef.toString()); } } } } }
@Override public void handleEvent(Event event) throws NuxeoException { DocumentEventContext docCtx = (DocumentEventContext) event.getContext(); CoreSession coreSession = docCtx.getCoreSession(); DocumentModel document = docCtx.getSourceDocument(); if (ToutaticeDocumentHelper.isInPublishSpace(coreSession, document)) { if (!document.isProxy() && !document.isVersion()) { if (!document.hasFacet(ToutaticeNuxeoStudioConst.CST_FACET_LOCAL_LIVE)) { document.addFacet(ToutaticeNuxeoStudioConst.CST_FACET_LOCAL_LIVE); ToutaticeDocumentHelper.saveDocumentSilently(coreSession, document, true); } } } }
@Override public void handleEvent(Event event) { EventContext ctx = event.getContext(); if (!(ctx instanceof DocumentEventContext)) { return; } DocumentEventContext docCtx = (DocumentEventContext) ctx; DocumentModel doc = docCtx.getSourceDocument(); if (doc.hasFacet(PICTURE_FACET) && !doc.isProxy()) { Property fileProp = doc.getProperty("file:content"); Property viewsProp = doc.getProperty(AbstractPictureAdapter.VIEWS_PROPERTY); boolean forceGeneration = Boolean.TRUE.equals(doc.getContextData(CTX_FORCE_VIEWS_GENERATION)); boolean noPictureViews = !viewsProp.isDirty() || viewsProp.size() == 0; boolean fileChanged = ABOUT_TO_CREATE.equals(event.getName()) || fileProp.isDirty(); if (forceGeneration || (noPictureViews && fileChanged)) { preFillPictureViews(docCtx.getCoreSession(), doc); } else { docCtx.setProperty(PictureViewsGenerationListener.DISABLE_PICTURE_VIEWS_GENERATION_LISTENER, true); } } }
@Override public void handleEvent(Event event) { DocumentEventContext docCtx = (DocumentEventContext) event.getContext(); DocumentRoute route = (DocumentRoute) docCtx.getProperty(DocumentRoutingConstants.DOCUMENT_ELEMENT_EVENT_CONTEXT_KEY); String initiator = (String) docCtx.getProperty(DocumentRoutingConstants.INITIATOR_EVENT_CONTEXT_KEY); CoreSession session = docCtx.getCoreSession(); // initiator is a step validator route.setCanValidateStep(session, initiator); // initiator can see the route ACP acp = route.getDocument().getACP(); ACL acl = acp.getOrCreateACL(DocumentRoutingConstants.DOCUMENT_ROUTING_ACL); acl.add(new ACE(initiator, SecurityConstants.READ, true)); session.setACP(route.getDocument().getRef(), acp, true); }