/** * Sets creator. * * @param docCtx * @param document * @return document updated */ public static DocumentModel setCreator(DocumentEventContext docCtx, DocumentModel document) { NuxeoPrincipal principal = (NuxeoPrincipal) docCtx.getPrincipal(); document.setProperty("dublincore", "creator", principal.getName()); return document; }
/** * Block system events. */ @Override public boolean accept(Event event) throws Exception { String eventName = event.getName(); DocumentEventContext docCtx = (DocumentEventContext) event.getContext(); DocumentModel doc = docCtx.getSourceDocument(); NuxeoPrincipal currentUser = (NuxeoPrincipal) docCtx.getPrincipal(); boolean isSystemInitiator = StringUtils.equalsIgnoreCase(LoginComponent.SYSTEM_USERNAME, currentUser.getName()); if(isSystemInitiator){ return !(ModelConstants.UNUM_DOCTYPE.equals(doc.getType()) && DocumentEventTypes.DOCUMENT_UPDATED.equals(eventName)); } return !isSystemInitiator; }
String author = ctx.getPrincipal().getName(); Calendar created = (Calendar) ctx.getSourceDocument().getPropertyValue("dc:created"); userUrl.append("#!/"); userUrl.append("user/").append(ctx.getPrincipal().getName()); eventInfo.put(NotificationConstants.USER_URL_KEY, userUrl.toString());
@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); }
/** * * * @param docCtx * @param session * @param docMod */ public static void throwEvent(DocumentEventContext docCtx, String eventName, CoreSession session, DocumentModel docMod) { // Event creation DocumentEventContext newDocCtx = new DocumentEventContext(session, docCtx.getPrincipal(), docMod); Event eventToThrow = new EventImpl(eventName, newDocCtx); // To avoid loop newDocCtx.setProperty(BLOCK, true); // Fire getEventService().fireEvent(eventToThrow); // Save document's modification due to inline listeners ToutaticeDocumentHelper.saveDocumentSilently(session, docMod, true); }
@Override public void handleEvent(Event event) { if (!(event.getContext() instanceof DocumentEventContext)) { return; } DocumentEventContext ctx = (DocumentEventContext) event.getContext(); DocumentModel doc = ctx.getSourceDocument(); if (!DOC_TYPES.contains(doc.getType())) { return; } Boolean flag = (Boolean) ctx.getProperty(EXTRACT_XML_ATTRIBUTES_NEEDED); if (!Boolean.TRUE.equals(flag)) { return; } Work worker = new ExtractXmlAttributesWorker(ctx.getRepositoryName(), ctx.getPrincipal().getName(), doc.getId()); Framework.getService(WorkManager.class).schedule(worker, true); } }
if (session.hasPermission(eventContext.getPrincipal(), parent.getRef(), SecurityConstants.WRITE)) { List<String> newParentSectionIds = new ArrayList<String>();
infoMap.put("mediateurFullName", fn.getUserFullName(docCtx.getPrincipal().getName()));
Principal principal = eventContext.getPrincipal(); if (null != principal) { principalName = principal.getName();
NuxeoPrincipal principal = docCtx.getPrincipal(); Map<String, Serializable> properties = docCtx.getProperties();
if (null != proxies && 0 < proxies.size()) { for (DocumentModel proxy : proxies) { EventContext proxyCtx = new DocumentEventContext(ctx.getCoreSession(), ctx.getPrincipal(), proxy); EventImpl proxyEvt = new EventImpl(originalEvtName, proxyCtx); listenerDesc.asEventListener().handleEvent(proxyEvt);
DocumentModel virtualWs = new DocumentModelImpl(parentPath, sourceDocument.getName(), SiteConstants.WORKSPACE); DocumentEventContext virtualDocCtx = new DocumentEventContext(sourceDocument.getCoreSession(), docContext.getPrincipal(), virtualWs);