List of usage examples for com.liferay.portal.kernel.sanitizer SanitizerUtil sanitize
public static String sanitize(long companyId, long groupId, long userId, String className, long classPK, String contentType, String content) throws SanitizerException
From source file:com.liferay.journal.service.impl.JournalArticleLocalServiceImpl.java
License:Open Source License
protected void format(User user, long groupId, JournalArticle article, Element root) throws PortalException { for (Element element : root.elements()) { String elType = element.attributeValue("type", StringPool.BLANK); if (elType.equals("document_library")) { addDocumentLibraryFileEntries(element); } else if (elType.equals("image")) { addImageFileEntries(article, element); } else if (elType.equals("text_area") || elType.equals("text") || elType.equals("text_box")) { List<Element> dynamicContentElements = element.elements("dynamic-content"); for (Element dynamicContentElement : dynamicContentElements) { String dynamicContent = dynamicContentElement.getText(); if (Validator.isNotNull(dynamicContent)) { String contentType = ContentTypes.TEXT_PLAIN; if (elType.equals("text_area")) { contentType = ContentTypes.TEXT_HTML; }/* www . jav a 2 s .co m*/ dynamicContent = SanitizerUtil.sanitize(user.getCompanyId(), groupId, user.getUserId(), JournalArticle.class.getName(), 0, contentType, dynamicContent); dynamicContentElement.clearContent(); dynamicContentElement.addCDATA(dynamicContent); } } } format(user, groupId, article, element); } }
From source file:com.liferay.portlet.journal.service.impl.JournalArticleLocalServiceImpl.java
License:Open Source License
protected void format(User user, long groupId, String articleId, double version, boolean incrementVersion, Element root, Map<String, byte[]> images) throws PortalException, SystemException { for (Element element : root.elements()) { String elInstanceId = element.attributeValue("instance-id", StringPool.BLANK); String elName = element.attributeValue("name", StringPool.BLANK); String elType = element.attributeValue("type", StringPool.BLANK); if (elType.equals("image")) { formatImage(groupId, articleId, version, incrementVersion, element, elInstanceId, elName, images); } else if (elType.equals("text_area") || elType.equals("text") || elType.equals("text_box")) { List<Element> dynamicContentElements = element.elements("dynamic-content"); for (Element dynamicContentElement : dynamicContentElements) { String dynamicContent = dynamicContentElement.getText(); if (Validator.isNotNull(dynamicContent)) { dynamicContent = SanitizerUtil.sanitize(user.getCompanyId(), groupId, user.getUserId(), JournalArticle.class.getName(), 0, ContentTypes.TEXT_HTML, dynamicContent); dynamicContentElement.setText(dynamicContent); }//from w ww . ja v a 2s . c om } } format(user, groupId, articleId, version, incrementVersion, element, images); } }
From source file:com.liferay.portlet.journal.service.impl.JournalArticleLocalServiceImpl.java
License:Open Source License
protected String format(User user, long groupId, String articleId, double version, boolean incrementVersion, String content, String structureId, Map<String, byte[]> images) throws PortalException, SystemException { Document document = null;// w w w. j a va2 s . co m try { document = SAXReaderUtil.read(content); Element rootElement = document.getRootElement(); if (Validator.isNotNull(structureId)) { format(user, groupId, articleId, version, incrementVersion, rootElement, images); } else { List<Element> staticContentElements = rootElement.elements("static-content"); for (Element staticContentElement : staticContentElements) { String staticContent = staticContentElement.getText(); staticContent = SanitizerUtil.sanitize(user.getCompanyId(), groupId, user.getUserId(), JournalArticle.class.getName(), 0, ContentTypes.TEXT_HTML, staticContent); staticContentElement.setText(staticContent); } } content = DDMXMLUtil.formatXML(document); } catch (DocumentException de) { _log.error(de); } catch (IOException ioe) { _log.error(ioe); } content = HtmlUtil.replaceMsWordCharacters(content); return content; }
From source file:com.liferay.portlet.messageboards.service.impl.MBMessageLocalServiceImpl.java
License:Open Source License
public MBMessage addMessage(long userId, String userName, long groupId, long categoryId, long threadId, long parentMessageId, String subject, String body, String format, List<ObjectValuePair<String, InputStream>> inputStreamOVPs, boolean anonymous, double priority, boolean allowPingbacks, ServiceContext serviceContext) throws PortalException, SystemException { // Message//from w ww .j a v a 2s. co m User user = userPersistence.findByPrimaryKey(userId); userName = user.isDefaultUser() ? userName : user.getFullName(); subject = ModelHintsUtil.trimString(MBMessage.class.getName(), "subject", subject); PortletPreferences preferences = ServiceContextUtil.getPortletPreferences(serviceContext); if (preferences != null) { if (!MBUtil.isAllowAnonymousPosting(preferences)) { if (anonymous || user.isDefaultUser()) { throw new PrincipalException(); } } } if (user.isDefaultUser()) { anonymous = true; } Date now = new Date(); long messageId = counterLocalService.increment(); body = SanitizerUtil.sanitize(user.getCompanyId(), groupId, userId, MBMessage.class.getName(), messageId, "text/" + format, body); validate(subject, body); subject = getSubject(subject, body); body = getBody(subject, body); MBMessage message = mbMessagePersistence.create(messageId); message.setUuid(serviceContext.getUuid()); message.setGroupId(groupId); message.setCompanyId(user.getCompanyId()); message.setUserId(user.getUserId()); message.setUserName(userName); message.setCreateDate(serviceContext.getCreateDate(now)); message.setModifiedDate(serviceContext.getModifiedDate(now)); if (threadId > 0) { message.setThreadId(threadId); } if (priority != MBThreadConstants.PRIORITY_NOT_GIVEN) { message.setPriority(priority); } message.setAllowPingbacks(allowPingbacks); message.setStatus(WorkflowConstants.STATUS_DRAFT); message.setStatusByUserId(user.getUserId()); message.setStatusByUserName(userName); message.setStatusDate(serviceContext.getModifiedDate(now)); // Thread if (parentMessageId != MBMessageConstants.DEFAULT_PARENT_MESSAGE_ID) { MBMessage parentMessage = mbMessagePersistence.fetchByPrimaryKey(parentMessageId); if (parentMessage == null) { parentMessageId = MBMessageConstants.DEFAULT_PARENT_MESSAGE_ID; } } MBThread thread = null; if (threadId > 0) { thread = mbThreadPersistence.fetchByPrimaryKey(threadId); } if ((thread == null) || (parentMessageId == MBMessageConstants.DEFAULT_PARENT_MESSAGE_ID)) { thread = mbThreadLocalService.addThread(categoryId, message); } if ((priority != MBThreadConstants.PRIORITY_NOT_GIVEN) && (thread.getPriority() != priority)) { thread.setPriority(priority); mbThreadPersistence.update(thread, false); updatePriorities(thread.getThreadId(), priority); } // Message message.setCategoryId(categoryId); message.setThreadId(thread.getThreadId()); message.setRootMessageId(thread.getRootMessageId()); message.setParentMessageId(parentMessageId); message.setSubject(subject); message.setBody(body); message.setFormat(format); message.setAttachments(!inputStreamOVPs.isEmpty()); message.setAnonymous(anonymous); if (message.isDiscussion()) { long classNameId = PortalUtil.getClassNameId((String) serviceContext.getAttribute("className")); long classPK = GetterUtil.getLong((String) serviceContext.getAttribute("classPK")); message.setClassNameId(classNameId); message.setClassPK(classPK); } mbMessagePersistence.update(message, false); // Attachments if (!inputStreamOVPs.isEmpty()) { long companyId = message.getCompanyId(); long repositoryId = CompanyConstants.SYSTEM; String dirName = message.getAttachmentsDir(); try { DLStoreUtil.deleteDirectory(companyId, repositoryId, dirName); } catch (NoSuchDirectoryException nsde) { if (_log.isDebugEnabled()) { _log.debug(nsde.getMessage()); } } DLStoreUtil.addDirectory(companyId, repositoryId, dirName); for (int i = 0; i < inputStreamOVPs.size(); i++) { ObjectValuePair<String, InputStream> inputStreamOVP = inputStreamOVPs.get(i); String fileName = inputStreamOVP.getKey(); InputStream inputStream = inputStreamOVP.getValue(); try { DLStoreUtil.addFile(companyId, repositoryId, dirName + "/" + fileName, inputStream); } catch (DuplicateFileException dfe) { if (_log.isDebugEnabled()) { _log.debug(dfe.getMessage()); } } } } // Resources if (!message.isDiscussion()) { if (user.isDefaultUser()) { addMessageResources(message, true, true); } else if (serviceContext.isAddGroupPermissions() || serviceContext.isAddGuestPermissions()) { addMessageResources(message, serviceContext.isAddGroupPermissions(), serviceContext.isAddGuestPermissions()); } else { addMessageResources(message, serviceContext.getGroupPermissions(), serviceContext.getGuestPermissions()); } } // Asset updateAsset(userId, message, serviceContext.getAssetCategoryIds(), serviceContext.getAssetTagNames(), serviceContext.getAssetLinkEntryIds(), serviceContext.isAssetEntryVisible()); // Expando ExpandoBridge expandoBridge = message.getExpandoBridge(); expandoBridge.setAttributes(serviceContext); // Workflow WorkflowHandlerRegistryUtil.startWorkflowInstance(user.getCompanyId(), groupId, userId, message.getWorkflowClassName(), message.getMessageId(), message, serviceContext); // Testing roll back /*if (true) { throw new SystemException("Testing roll back"); }*/ return message; }
From source file:com.liferay.portlet.messageboards.service.impl.MBMessageLocalServiceImpl.java
License:Open Source License
public MBMessage updateMessage(long userId, long messageId, String subject, String body, List<ObjectValuePair<String, InputStream>> inputStreamOVPs, List<String> existingFiles, double priority, boolean allowPingbacks, ServiceContext serviceContext) throws PortalException, SystemException { // Message//from w w w. j a v a 2 s.co m MBMessage message = mbMessagePersistence.findByPrimaryKey(messageId); subject = ModelHintsUtil.trimString(MBMessage.class.getName(), "subject", subject); body = SanitizerUtil.sanitize(message.getCompanyId(), message.getGroupId(), userId, MBMessage.class.getName(), messageId, "text/" + message.getFormat(), body); Date now = new Date(); validate(subject, body); subject = getSubject(subject, body); body = getBody(subject, body); message.setModifiedDate(serviceContext.getModifiedDate(now)); message.setSubject(subject); message.setBody(body); message.setAttachments(!inputStreamOVPs.isEmpty() || !existingFiles.isEmpty()); message.setAllowPingbacks(allowPingbacks); if (priority != MBThreadConstants.PRIORITY_NOT_GIVEN) { message.setPriority(priority); } if (!message.isPending() && (serviceContext.getWorkflowAction() == WorkflowConstants.ACTION_SAVE_DRAFT)) { message.setStatus(WorkflowConstants.STATUS_DRAFT); } // Attachments long companyId = message.getCompanyId(); long repositoryId = CompanyConstants.SYSTEM; String dirName = message.getAttachmentsDir(); if (!inputStreamOVPs.isEmpty() || !existingFiles.isEmpty()) { try { DLStoreUtil.addDirectory(companyId, repositoryId, dirName); } catch (DuplicateDirectoryException dde) { } String[] fileNames = DLStoreUtil.getFileNames(companyId, repositoryId, dirName); for (String fileName : fileNames) { if (!existingFiles.contains(fileName)) { DLStoreUtil.deleteFile(companyId, repositoryId, fileName); } } for (int i = 0; i < inputStreamOVPs.size(); i++) { ObjectValuePair<String, InputStream> inputStreamOVP = inputStreamOVPs.get(i); String fileName = inputStreamOVP.getKey(); InputStream inputStream = inputStreamOVP.getValue(); try { DLStoreUtil.addFile(companyId, repositoryId, dirName + "/" + fileName, inputStream); } catch (DuplicateFileException dfe) { } } } else { try { DLStoreUtil.deleteDirectory(companyId, repositoryId, dirName); } catch (NoSuchDirectoryException nsde) { } } mbMessagePersistence.update(message, false); // Thread MBThread thread = mbThreadPersistence.findByPrimaryKey(message.getThreadId()); if ((priority != MBThreadConstants.PRIORITY_NOT_GIVEN) && (thread.getPriority() != priority)) { thread.setPriority(priority); mbThreadPersistence.update(thread, false); updatePriorities(thread.getThreadId(), priority); } // Asset updateAsset(userId, message, serviceContext.getAssetCategoryIds(), serviceContext.getAssetTagNames(), serviceContext.getAssetLinkEntryIds()); // Expando ExpandoBridge expandoBridge = message.getExpandoBridge(); expandoBridge.setAttributes(serviceContext); // Workflow serviceContext.setAttribute("update", Boolean.TRUE.toString()); WorkflowHandlerRegistryUtil.startWorkflowInstance(companyId, message.getGroupId(), userId, message.getWorkflowClassName(), message.getMessageId(), message, serviceContext); return message; }
From source file:com.liferay.portlet.wiki.service.impl.WikiPageLocalServiceImpl.java
License:Open Source License
public WikiPage addPage(long userId, long nodeId, String title, double version, String content, String summary, boolean minorEdit, String format, boolean head, String parentTitle, String redirectTitle, ServiceContext serviceContext) throws PortalException, SystemException { // Page// w w w . ja v a 2 s . co m User user = userPersistence.findByPrimaryKey(userId); WikiNode node = wikiNodePersistence.findByPrimaryKey(nodeId); Date now = new Date(); long pageId = counterLocalService.increment(); content = SanitizerUtil.sanitize(user.getCompanyId(), node.getGroupId(), userId, WikiPage.class.getName(), pageId, "text/" + format, content); validate(title, nodeId, content, format); long resourcePrimKey = wikiPageResourceLocalService.getPageResourcePrimKey(nodeId, title); WikiPage page = wikiPagePersistence.create(pageId); page.setUuid(serviceContext.getUuid()); page.setResourcePrimKey(resourcePrimKey); page.setGroupId(node.getGroupId()); page.setCompanyId(user.getCompanyId()); page.setUserId(user.getUserId()); page.setUserName(user.getFullName()); page.setCreateDate(serviceContext.getCreateDate(now)); page.setModifiedDate(serviceContext.getModifiedDate(now)); page.setNodeId(nodeId); page.setTitle(title); page.setVersion(version); page.setMinorEdit(minorEdit); page.setContent(content); page.setStatus(WorkflowConstants.STATUS_DRAFT); page.setSummary(summary); page.setFormat(format); page.setHead(head); page.setParentTitle(parentTitle); page.setRedirectTitle(redirectTitle); wikiPagePersistence.update(page, false); // Resources if (serviceContext.isAddGroupPermissions() || serviceContext.isAddGuestPermissions()) { addPageResources(page, serviceContext.isAddGroupPermissions(), serviceContext.isAddGuestPermissions()); } else { addPageResources(page, serviceContext.getGroupPermissions(), serviceContext.getGuestPermissions()); } // Node node.setLastPostDate(serviceContext.getModifiedDate(now)); wikiNodePersistence.update(node, false); // Asset updateAsset(userId, page, serviceContext.getAssetCategoryIds(), serviceContext.getAssetTagNames(), serviceContext.getAssetLinkEntryIds()); // Expando ExpandoBridge expandoBridge = page.getExpandoBridge(); expandoBridge.setAttributes(serviceContext); // Message boards if (PropsValues.WIKI_PAGE_COMMENTS_ENABLED) { mbMessageLocalService.addDiscussionMessage(userId, page.getUserName(), page.getGroupId(), WikiPage.class.getName(), resourcePrimKey, WorkflowConstants.ACTION_PUBLISH); } // Workflow WorkflowHandlerRegistryUtil.startWorkflowInstance(user.getCompanyId(), page.getGroupId(), userId, WikiPage.class.getName(), page.getPageId(), page, serviceContext); return page; }
From source file:com.liferay.portlet.wiki.service.impl.WikiPageLocalServiceImpl.java
License:Open Source License
public WikiPage updatePage(long userId, long nodeId, String title, double version, String content, String summary, boolean minorEdit, String format, String parentTitle, String redirectTitle, ServiceContext serviceContext) throws PortalException, SystemException { // Page/*from w w w .jav a 2 s .c o m*/ User user = userPersistence.findByPrimaryKey(userId); Date now = new Date(); WikiPage oldPage = null; try { oldPage = wikiPagePersistence.findByN_T_First(nodeId, title, null); } catch (NoSuchPageException nspe) { return addPage(userId, nodeId, title, WikiPageConstants.VERSION_DEFAULT, content, summary, minorEdit, format, true, parentTitle, redirectTitle, serviceContext); } long pageId = 0; if (oldPage.isApproved()) { pageId = counterLocalService.increment(); } else { pageId = oldPage.getPageId(); } content = SanitizerUtil.sanitize(user.getCompanyId(), oldPage.getGroupId(), userId, WikiPage.class.getName(), pageId, "text/" + format, content); validate(nodeId, content, format); double oldVersion = oldPage.getVersion(); if ((version > 0) && (version != oldVersion)) { throw new PageVersionException(); } long resourcePrimKey = wikiPageResourceLocalService.getPageResourcePrimKey(nodeId, title); long groupId = oldPage.getGroupId(); WikiPage page = oldPage; double newVersion = oldVersion; if (oldPage.isApproved()) { newVersion = MathUtil.format(oldVersion + 0.1, 1, 1); page = wikiPagePersistence.create(pageId); } page.setResourcePrimKey(resourcePrimKey); page.setGroupId(groupId); page.setCompanyId(user.getCompanyId()); page.setUserId(user.getUserId()); page.setUserName(user.getFullName()); page.setCreateDate(serviceContext.getModifiedDate(now)); page.setModifiedDate(serviceContext.getModifiedDate(now)); page.setNodeId(nodeId); page.setTitle(title); page.setVersion(newVersion); page.setMinorEdit(minorEdit); page.setContent(content); if (oldPage.isPending()) { page.setStatus(oldPage.getStatus()); } else { page.setStatus(WorkflowConstants.STATUS_DRAFT); } page.setSummary(summary); page.setFormat(format); if (Validator.isNotNull(parentTitle)) { page.setParentTitle(parentTitle); } if (Validator.isNotNull(redirectTitle)) { page.setRedirectTitle(redirectTitle); } wikiPagePersistence.update(page, false); // Expando ExpandoBridge expandoBridge = page.getExpandoBridge(); expandoBridge.setAttributes(serviceContext); // Node WikiNode node = wikiNodePersistence.findByPrimaryKey(nodeId); node.setLastPostDate(serviceContext.getModifiedDate(now)); wikiNodePersistence.update(node, false); // Asset updateAsset(userId, page, serviceContext.getAssetCategoryIds(), serviceContext.getAssetTagNames(), serviceContext.getAssetLinkEntryIds()); // Workflow WorkflowHandlerRegistryUtil.startWorkflowInstance(user.getCompanyId(), page.getGroupId(), userId, WikiPage.class.getName(), page.getPageId(), page, serviceContext); return page; }
From source file:com.liferay.wiki.service.impl.WikiPageLocalServiceImpl.java
License:Open Source License
@Override public WikiPage addPage(long userId, long nodeId, String title, double version, String content, String summary, boolean minorEdit, String format, boolean head, String parentTitle, String redirectTitle, ServiceContext serviceContext) throws PortalException { // Page//from www . j a v a 2 s.c om User user = userPersistence.findByPrimaryKey(userId); WikiNode node = wikiNodePersistence.findByPrimaryKey(nodeId); Date now = new Date(); long pageId = counterLocalService.increment(); content = SanitizerUtil.sanitize(user.getCompanyId(), node.getGroupId(), userId, WikiPage.class.getName(), pageId, "text/" + format, content); validate(title, nodeId, content, format); long resourcePrimKey = wikiPageResourceLocalService.getPageResourcePrimKey(node.getGroupId(), nodeId, title); WikiPage page = wikiPagePersistence.create(pageId); page.setUuid(serviceContext.getUuid()); page.setResourcePrimKey(resourcePrimKey); page.setGroupId(node.getGroupId()); page.setCompanyId(user.getCompanyId()); page.setUserId(user.getUserId()); page.setUserName(user.getFullName()); page.setNodeId(nodeId); page.setTitle(title); page.setVersion(version); page.setMinorEdit(minorEdit); page.setContent(content); page.setSummary(summary); page.setFormat(format); page.setHead(head); page.setParentTitle(parentTitle); page.setRedirectTitle(redirectTitle); page.setStatus(WorkflowConstants.STATUS_DRAFT); page.setStatusByUserId(userId); page.setStatusDate(serviceContext.getModifiedDate(now)); page.setExpandoBridgeAttributes(serviceContext); wikiPagePersistence.update(page); // Resources if (serviceContext.isAddGroupPermissions() || serviceContext.isAddGuestPermissions()) { addPageResources(page, serviceContext.isAddGroupPermissions(), serviceContext.isAddGuestPermissions()); } else { addPageResources(page, serviceContext.getGroupPermissions(), serviceContext.getGuestPermissions()); } // Node node.setLastPostDate(serviceContext.getModifiedDate(now)); wikiNodePersistence.update(node); // Asset updateAsset(userId, page, serviceContext.getAssetCategoryIds(), serviceContext.getAssetTagNames(), serviceContext.getAssetLinkEntryIds(), serviceContext.getAssetPriority()); // Message boards WikiGroupServiceOverriddenConfiguration wikiGroupServiceOverriddenConfiguration = configurationProvider .getConfiguration(WikiGroupServiceOverriddenConfiguration.class, new GroupServiceSettingsLocator(node.getGroupId(), WikiConstants.SERVICE_NAME)); if (wikiGroupServiceOverriddenConfiguration.pageCommentsEnabled()) { CommentManagerUtil.addDiscussion(userId, page.getGroupId(), WikiPage.class.getName(), resourcePrimKey, page.getUserName()); } // Workflow page = startWorkflowInstance(userId, page, serviceContext); return page; }
From source file:com.liferay.wiki.service.impl.WikiPageLocalServiceImpl.java
License:Open Source License
protected WikiPage updatePage(long userId, WikiPage oldPage, long newNodeId, String newTitle, String content, String summary, boolean minorEdit, String format, String parentTitle, String redirectTitle, ServiceContext serviceContext) throws PortalException { User user = userPersistence.findByPrimaryKey(userId); long pageId = 0; if (oldPage.isApproved()) { pageId = counterLocalService.increment(); } else {//from w w w . j a va 2 s .c o m pageId = oldPage.getPageId(); } content = SanitizerUtil.sanitize(user.getCompanyId(), oldPage.getGroupId(), userId, WikiPage.class.getName(), pageId, "text/" + format, content); long nodeId = oldPage.getNodeId(); if (newNodeId != 0) { nodeId = newNodeId; } if (!format.equals(oldPage.getFormat())) { validate(nodeId, content, format); } serviceContext.validateModifiedDate(oldPage, PageVersionException.class); long resourcePrimKey = wikiPageResourceLocalService.getPageResourcePrimKey(oldPage.getGroupId(), oldPage.getNodeId(), oldPage.getTitle()); Date now = new Date(); WikiPage page = oldPage; double newVersion = oldPage.getVersion(); if (oldPage.isApproved()) { newVersion = MathUtil.format(oldPage.getVersion() + 0.1, 1, 1); page = wikiPagePersistence.create(pageId); page.setUuid(serviceContext.getUuid()); } page.setResourcePrimKey(resourcePrimKey); page.setGroupId(oldPage.getGroupId()); page.setCompanyId(user.getCompanyId()); page.setUserId(user.getUserId()); page.setUserName(user.getFullName()); page.setCreateDate(oldPage.getCreateDate()); page.setNodeId(nodeId); page.setTitle(Validator.isNull(newTitle) ? oldPage.getTitle() : newTitle); page.setVersion(newVersion); page.setMinorEdit(minorEdit); page.setContent(content); if (oldPage.isPending()) { page.setStatus(oldPage.getStatus()); } else { page.setStatus(WorkflowConstants.STATUS_DRAFT); } page.setSummary(summary); page.setFormat(format); if (Validator.isNotNull(parentTitle)) { page.setParentTitle(parentTitle); } if (Validator.isNotNull(redirectTitle)) { page.setRedirectTitle(redirectTitle); } ExpandoBridgeUtil.setExpandoBridgeAttributes(oldPage.getExpandoBridge(), page.getExpandoBridge(), serviceContext); wikiPagePersistence.update(page); // Node WikiNode node = wikiNodePersistence.findByPrimaryKey(nodeId); node.setLastPostDate(serviceContext.getModifiedDate(now)); wikiNodePersistence.update(node); // Asset updateAsset(userId, page, serviceContext.getAssetCategoryIds(), serviceContext.getAssetTagNames(), serviceContext.getAssetLinkEntryIds(), serviceContext.getAssetPriority()); // Workflow page = startWorkflowInstance(userId, page, serviceContext); return page; }