List of usage examples for com.liferay.portal.kernel.repository.model Folder getAncestorFolderIds
public List<Long> getAncestorFolderIds() throws PortalException;
From source file:com.liferay.document.library.internal.service.SubscriptionDLAppHelperLocalServiceWrapper.java
License:Open Source License
protected void notifySubscribers(long userId, FileVersion fileVersion, String entryURL, ServiceContext serviceContext) throws PortalException { if (!fileVersion.isApproved() || Validator.isNull(entryURL)) { return;// w w w . java 2s . c om } DLGroupServiceSettings dlGroupServiceSettings = DLGroupServiceSettings .getInstance(fileVersion.getGroupId()); boolean commandUpdate = false; if (serviceContext.isCommandUpdate() || Constants.CHECKIN.equals(serviceContext.getCommand())) { commandUpdate = true; } if (serviceContext.isCommandAdd() && dlGroupServiceSettings.isEmailFileEntryAddedEnabled()) { } else if (commandUpdate && dlGroupServiceSettings.isEmailFileEntryUpdatedEnabled()) { } else { return; } String entryTitle = fileVersion.getTitle(); String fromName = dlGroupServiceSettings.getEmailFromName(); String fromAddress = dlGroupServiceSettings.getEmailFromAddress(); LocalizedValuesMap subjectLocalizedValuesMap = null; LocalizedValuesMap bodyLocalizedValuesMap = null; if (commandUpdate) { subjectLocalizedValuesMap = dlGroupServiceSettings.getEmailFileEntryUpdatedSubject(); bodyLocalizedValuesMap = dlGroupServiceSettings.getEmailFileEntryUpdatedBody(); } else { subjectLocalizedValuesMap = dlGroupServiceSettings.getEmailFileEntryAddedSubject(); bodyLocalizedValuesMap = dlGroupServiceSettings.getEmailFileEntryAddedBody(); } FileEntry fileEntry = fileVersion.getFileEntry(); Folder folder = null; long folderId = fileEntry.getFolderId(); if (folderId != DLFolderConstants.DEFAULT_PARENT_FOLDER_ID) { folder = _dlAppLocalService.getFolder(folderId); } SubscriptionSender subscriptionSender = new GroupSubscriptionCheckSubscriptionSender( DLPermission.RESOURCE_NAME); DLFileEntry dlFileEntry = (DLFileEntry) fileEntry.getModel(); DLFileEntryType dlFileEntryType = _dlFileEntryTypeLocalService .getDLFileEntryType(dlFileEntry.getFileEntryTypeId()); subscriptionSender.setClassPK(fileVersion.getFileEntryId()); subscriptionSender.setClassName(DLFileEntryConstants.getClassName()); subscriptionSender.setCompanyId(fileVersion.getCompanyId()); if (folder != null) { subscriptionSender.setContextAttribute("[$FOLDER_NAME$]", folder.getName(), true); } else { subscriptionSender.setLocalizedContextAttribute("[$FOLDER_NAME$]", new EscapableLocalizableFunction(locale -> LanguageUtil.get(locale, "home"))); } subscriptionSender.setContextAttributes("[$DOCUMENT_STATUS_BY_USER_NAME$]", fileVersion.getStatusByUserName(), "[$DOCUMENT_TITLE$]", entryTitle, "[$DOCUMENT_URL$]", entryURL); subscriptionSender.setContextCreatorUserPrefix("DOCUMENT"); subscriptionSender.setCreatorUserId(fileVersion.getUserId()); subscriptionSender.setCurrentUserId(userId); subscriptionSender.setEntryTitle(entryTitle); subscriptionSender.setEntryURL(entryURL); subscriptionSender.setFrom(fromAddress, fromName); subscriptionSender.setHtmlFormat(true); subscriptionSender.setLocalizedBodyMap(LocalizationUtil.getMap(bodyLocalizedValuesMap)); subscriptionSender.setLocalizedContextAttribute("[$DOCUMENT_TYPE$]", new EscapableLocalizableFunction(locale -> dlFileEntryType.getName(locale))); subscriptionSender.setLocalizedSubjectMap(LocalizationUtil.getMap(subjectLocalizedValuesMap)); subscriptionSender.setMailId("file_entry", fileVersion.getFileEntryId()); int notificationType = UserNotificationDefinition.NOTIFICATION_TYPE_ADD_ENTRY; if (commandUpdate) { notificationType = UserNotificationDefinition.NOTIFICATION_TYPE_UPDATE_ENTRY; } subscriptionSender.setNotificationType(notificationType); String portletId = PortletProviderUtil.getPortletId(FileEntry.class.getName(), PortletProvider.Action.VIEW); subscriptionSender.setPortletId(portletId); subscriptionSender.setReplyToAddress(fromAddress); subscriptionSender.setScopeGroupId(fileVersion.getGroupId()); subscriptionSender.setServiceContext(serviceContext); subscriptionSender.addPersistedSubscribers(DLFolder.class.getName(), fileVersion.getGroupId()); if (folder != null) { subscriptionSender.addPersistedSubscribers(DLFolder.class.getName(), folder.getFolderId()); for (Long ancestorFolderId : folder.getAncestorFolderIds()) { subscriptionSender.addPersistedSubscribers(DLFolder.class.getName(), ancestorFolderId); } } if (dlFileEntryType.getFileEntryTypeId() == DLFileEntryTypeConstants.FILE_ENTRY_TYPE_ID_BASIC_DOCUMENT) { subscriptionSender.addPersistedSubscribers(DLFileEntryType.class.getName(), fileVersion.getGroupId()); } else { subscriptionSender.addPersistedSubscribers(DLFileEntryType.class.getName(), dlFileEntryType.getFileEntryTypeId()); } subscriptionSender.addPersistedSubscribers(DLFileEntry.class.getName(), fileEntry.getFileEntryId()); subscriptionSender.flushNotificationsAsync(); }
From source file:com.liferay.document.library.web.internal.util.DLSubscriptionUtil.java
License:Open Source License
public static boolean isSubscribedToFolder(long companyId, long groupId, long userId, long folderId, boolean recursive) throws PortalException { List<Long> ancestorFolderIds = new ArrayList<>(); if (folderId != DLFolderConstants.DEFAULT_PARENT_FOLDER_ID) { Folder folder = DLAppLocalServiceUtil.getFolder(folderId); ancestorFolderIds.add(folderId); if (recursive) { ancestorFolderIds.addAll(folder.getAncestorFolderIds()); ancestorFolderIds.add(groupId); }/* w w w.j a va2 s. co m*/ } else { ancestorFolderIds.add(groupId); } long[] folderIdsArray = ArrayUtil.toLongArray(ancestorFolderIds); return SubscriptionLocalServiceUtil.isSubscribed(companyId, userId, DLFolder.class.getName(), folderIdsArray); }
From source file:com.liferay.notifications.hook.service.impl.DLAppHelperLocalServiceImpl.java
License:Open Source License
protected List<ObjectValuePair<String, Long>> getSubscribersOVPs(FileVersion latestFileVersion) throws PortalException, SystemException { List<ObjectValuePair<String, Long>> subscribersOVPs = new ArrayList<ObjectValuePair<String, Long>>(); subscribersOVPs.add(new ObjectValuePair<String, Long>(_FOLDER_CLASS_NAME, latestFileVersion.getGroupId())); List<Long> folderIds = new ArrayList<Long>(); FileEntry fileEntry = latestFileVersion.getFileEntry(); Folder folder = fileEntry.getFolder(); if (folder != null) { folderIds.add(folder.getFolderId()); folderIds.addAll(folder.getAncestorFolderIds()); }//from w w w. ja va2s . c o m for (long folderId : folderIds) { subscribersOVPs.add(new ObjectValuePair<String, Long>(_FOLDER_CLASS_NAME, folderId)); } return subscribersOVPs; }
From source file:com.liferay.portlet.documentlibrary.util.DLImpl.java
License:Open Source License
@Override public boolean isSubscribedToFolder(long companyId, long groupId, long userId, long folderId, boolean recursive) throws PortalException { List<Long> ancestorFolderIds = new ArrayList<>(); if (folderId != DLFolderConstants.DEFAULT_PARENT_FOLDER_ID) { Folder folder = DLAppLocalServiceUtil.getFolder(folderId); ancestorFolderIds.add(folderId); if (recursive) { ancestorFolderIds.addAll(folder.getAncestorFolderIds()); ancestorFolderIds.add(groupId); }//from w ww. ja v a 2 s .c o m } else { ancestorFolderIds.add(groupId); } long[] folderIdsArray = ArrayUtil.toLongArray(ancestorFolderIds); return SubscriptionLocalServiceUtil.isSubscribed(companyId, userId, DLFolder.class.getName(), folderIdsArray); }