public InstanceRef(DocumentModel doc, NuxeoPrincipal principal) { if (doc.getRef() == null) { throw new NullPointerException("document as no reference yet"); } referent = doc; repositoryName = doc.getRepositoryName(); this.principal = principal; ref = doc.getRef(); }
public DocumentLocationImpl(DocumentModel doc) { serverName = doc.getRepositoryName(); docRef = doc.getRef(); String id = doc.getId(); if (id != null) { docIdRef = new IdRef(id); } else { docIdRef = null; } String path = doc.getPathAsString(); if (path != null) { docPathRef = new PathRef(path); } else { docPathRef = null; } }
public LiveDocumentRefFinder(DocumentModel proxy) { super(proxy.getRepositoryName()); this.proxy = proxy; }
@Override public int compare(DocumentModel a, DocumentModel b) { return ids.indexOf(a.getRepositoryName() + a.getId()) - ids.indexOf(b.getRepositoryName() + b.getId()); } });
private static StringBuilder getRestletBaseURL(DocumentModel doc) { StringBuilder urlb = new StringBuilder(); urlb.append(BaseURL.getBaseURL()); urlb.append(RESTLET_PREFIX); urlb.append('/'); urlb.append(doc.getRepositoryName()); urlb.append('/'); urlb.append(doc.getRef().toString()); urlb.append('/'); return urlb; }
@Override public void write(JsonGenerator jg, DocumentModel document) throws IOException { jg.writeFieldName(NAME); jg.writeStartObject(); jg.writeStringField(THUMBNAIL_URL_LABEL, String.format(THUMBNAIL_URL_PATTERN, ctx.getBaseUrl().replaceAll("/$", ""), document.getRepositoryName(), document.getId(), URLEncoder.encode(defaultString(document.getChangeToken()), "UTF-8"))); jg.writeEndObject(); } }
@Override public void launchConversion(DocumentModel doc, String conversionName) { WorkManager workManager = Framework.getService(WorkManager.class); VideoConversionWork work = new VideoConversionWork(doc.getRepositoryName(), doc.getId(), conversionName); log.debug(String.format("Scheduling work: %s conversion of Video document %s.", conversionName, doc)); workManager.schedule(work, true); }
protected void scheduleAsyncProcessing(DocumentModel doc) { WorkManager workManager = Framework.getService(WorkManager.class); VideoInfoWork work = new VideoInfoWork(doc.getRepositoryName(), doc.getId()); log.debug(String.format("Scheduling work: video info of document %s.", doc)); workManager.schedule(work, true); }
private static String getIdForEntry(String userName, String listName, DocumentModel doc) { String ref = doc.getRef().toString(); int refType = doc.getRef().type(); String repoId = doc.getRepositoryName(); return getIdForEntry(userName, listName, ref, refType, repoId); }
@Override public DocumentModel createLocatedComment(DocumentModel docModel, DocumentModel comment, String path) throws CommentSecurityException { try (CloseableCoreSession session = CoreInstance.openCoreSessionSystem(docModel.getRepositoryName())) { DocumentModel createdComment = internalCreateComment(session, docModel, comment, path); session.save(); return createdComment; } }
@Override public String getDownloadUrl(DocumentModel doc, String xpath, String filename) { return getDownloadUrl(doc.getRepositoryName(), doc.getId(), xpath, filename, doc.getChangeToken()); }
/** * @since 10.3 */ protected void notifyPublishedEvent(DocumentModel doc) { Map<String, Serializable> properties = new HashMap<>(); properties.put(CoreEventConstants.REPOSITORY_NAME, doc.getRepositoryName()); properties.put(CoreEventConstants.SESSION_ID, session.getSessionId()); properties.put(CoreEventConstants.DOC_LIFE_CYCLE, doc.getCurrentLifeCycleState()); DocumentEventContext ctx = new DocumentEventContext(session, session.getPrincipal(), doc); ctx.setProperties(properties); ctx.setCategory(DocumentEventCategories.EVENT_DOCUMENT_CATEGORY); Event event = ctx.newEvent(DocumentEventTypes.DOCUMENT_PUBLISHED); Framework.getService(EventProducer.class).fireEvent(event); }
private void handleEvent(Event event) { EventContext ctx = event.getContext(); if (!(ctx instanceof DocumentEventContext)) { return; } DocumentEventContext docCtx = (DocumentEventContext) ctx; DocumentModel doc = docCtx.getSourceDocument(); // launch work doing the actual views generation PictureViewsGenerationWork work = new PictureViewsGenerationWork(doc.getRepositoryName(), doc.getRef().toString(), "file:content"); WorkManager workManager = Framework.getService(WorkManager.class); workManager.schedule(work, WorkManager.Scheduling.IF_NOT_SCHEDULED, true); }
protected String computeKeyForAtomicCreation(DocumentModel docModel) { String repositoryName = docModel.getRepositoryName(); if (repositoryName == null) { repositoryName = getRepositoryName(); } String parentId = getDocument(docModel.getParentRef()).getId(); String name = docModel.getName(); return repositoryName + "-" + parentId + "-" + name; }
public List<LogEntry> getAudits() { Logs logs = Framework.getService(Logs.class); DocumentObject document = (DocumentObject) getTarget(); DocumentModel model = document.getAdapter(DocumentModel.class); String id = model.getId(); String repo = model.getRepositoryName(); return logs.getLogEntriesFor(id, repo); }
@Override public DocumentModel createComment(DocumentModel docModel, String comment, String author) { try (CloseableCoreSession session = CoreInstance.openCoreSessionSystem(docModel.getRepositoryName())) { DocumentModel commentDM = session.createDocumentModel(COMMENT_DOC_TYPE); commentDM.setPropertyValue(CommentsConstants.COMMENT_TEXT, comment); commentDM.setPropertyValue(CommentsConstants.COMMENT_AUTHOR, author); commentDM.setPropertyValue(CommentsConstants.COMMENT_CREATION_DATE, Calendar.getInstance()); commentDM = internalCreateComment(session, docModel, commentDM, null); session.save(); return commentDM; } }
@Override public void removeSubscriptions(String username, List<String> notifications, DocumentModel doc) { CoreInstance.doPrivileged(doc.getRepositoryName(), (CoreSession session) -> { SubscriptionAdapter sa = doc.getAdapter(SubscriptionAdapter.class); for (String notification : notifications) { sa.removeUserNotificationSubscription(username, notification); } disableEvents(doc); session.saveDocument(doc); restoreEvents(doc); }); }
@Override public DocumentModel createComment(DocumentModel docModel, DocumentModel comment) throws CommentSecurityException { try (CloseableCoreSession session = CoreInstance.openCoreSessionSystem(docModel.getRepositoryName())) { comment.setPropertyValue(COMMENT_ANCESTOR_IDS, (Serializable) computeAncestorIds(session, docModel.getId())); DocumentModel doc = internalCreateComment(session, docModel, comment, null); session.save(); doc.detach(true); return doc; } }
@Override public void deleteComment(DocumentModel docModel, DocumentModel comment) { try (CloseableCoreSession session = CoreInstance.openCoreSessionSystem(docModel.getRepositoryName())) { DocumentRef ref = comment.getRef(); if (!session.exists(ref)) { throw new NuxeoException("Comment Document does not exist: " + comment.getId()); } session.removeDocument(ref); notifyEvent(session, CommentEvents.COMMENT_REMOVED, docModel, comment); session.save(); } }
@Override public DocumentModel createComment(DocumentModel docModel, DocumentModel parent, DocumentModel child) { try (CloseableCoreSession session = CoreInstance.openCoreSessionSystem(docModel.getRepositoryName())) { DocumentModel parentDocModel = session.getDocument(parent.getRef()); String containerPath = parent.getPath().removeLastSegments(1).toString(); DocumentModel newComment = internalCreateComment(session, parentDocModel, child, containerPath); session.save(); return newComment; } }