/** @deprecated As of 7.0.0, with no direct replacement */ @Deprecated @Override public SyncDLObjectUpdate getAllSyncDLObjects(long repositoryId, long folderId) throws PortalException { try { SyncUtil.checkSyncEnabled(repositoryId); long lastAccessTime = System.currentTimeMillis(); long companyId = 0; Repository repository = repositoryLocalService.fetchRepository(repositoryId); if (repository != null) { companyId = repository.getCompanyId(); } else { Group group = groupLocalService.getGroup(repositoryId); companyId = group.getCompanyId(); } List<SyncDLObject> syncDLObjects = syncDLObjectPersistence.findByC_M_R(companyId, 0, repositoryId); return new SyncDLObjectUpdate(syncDLObjects, lastAccessTime); } catch (PortalException pe) { throw new PortalException(SyncUtil.buildExceptionMessage(pe), pe); } }
@Override public SyncDLObjectUpdate getSyncDLObjectUpdate( long companyId, long repositoryId, long parentFolderId, long lastAccessTime) throws PortalException { try { SyncUtil.checkSyncEnabled(repositoryId); repositoryService.checkRepository(repositoryId); List<SyncDLObject> syncDLObjects = new ArrayList<>(); if (parentFolderId > 0) { PermissionChecker permissionChecker = getPermissionChecker(); if (permissionChecker.hasPermission( repositoryId, DLFolderConstants.getClassName(), parentFolderId, ActionKeys.VIEW)) { SyncDLObject syncDLObject = syncDLObjectPersistence.fetchByT_T(SyncConstants.TYPE_FOLDER, parentFolderId); if (syncDLObject != null) { syncDLObjects.add(syncDLObject); } } } syncDLObjects = getSyncDLObjects(syncDLObjects, companyId, repositoryId, parentFolderId, lastAccessTime); return new SyncDLObjectUpdate(syncDLObjects, lastAccessTime); } catch (PortalException pe) { throw new PortalException(SyncUtil.buildExceptionMessage(pe), pe); } }
@Override public SyncDLObjectUpdate getSyncDLObjectUpdate( long companyId, long repositoryId, long lastAccessTime) throws PortalException { try { SyncUtil.checkSyncEnabled(repositoryId); repositoryService.checkRepository(repositoryId); List<SyncDLObject> syncDLObjects = syncDLObjectFinder.filterFindByC_M_R_P(companyId, lastAccessTime, repositoryId, -1); if (!InlineSQLHelperUtil.isEnabled(repositoryId)) { syncDLObjects = checkSyncDLObjects(syncDLObjects); } for (SyncDLObject syncDLObject : syncDLObjects) { if (syncDLObject.getModifiedTime() > lastAccessTime) { lastAccessTime = syncDLObject.getModifiedTime(); } } return new SyncDLObjectUpdate(syncDLObjects, lastAccessTime); } catch (PortalException pe) { throw new PortalException(SyncUtil.buildExceptionMessage(pe), pe); } }
@Override public List<SyncDLObject> getFolderSyncDLObjects(long repositoryId, long parentFolderId) throws PortalException { try { SyncUtil.checkSyncEnabled(repositoryId); List<Folder> folders = dlAppService.getFolders(repositoryId, parentFolderId); List<SyncDLObject> syncDLObjects = new ArrayList<>(folders.size()); for (Folder folder : folders) { if (!SyncUtil.isSupportedFolder(folder)) { continue; } SyncDLObject syncDLObject = toSyncDLObject(folder, SyncConstants.EVENT_GET); syncDLObjects.add(syncDLObject); } return syncDLObjects; } catch (PortalException pe) { throw new PortalException(SyncUtil.buildExceptionMessage(pe), pe); } }
@Override public Group getGroup(long groupId) throws PortalException { try { SyncUtil.checkSyncEnabled(groupId); return groupService.getGroup(groupId); } catch (PortalException pe) { throw new PortalException(SyncUtil.buildExceptionMessage(pe), pe); } }
@Override public SyncDLObject getFileEntrySyncDLObject(long groupId, long folderId, String title) throws PortalException { try { SyncUtil.checkSyncEnabled(groupId); FileEntry fileEntry = dlAppService.getFileEntry(groupId, folderId, title); return toSyncDLObject(fileEntry, SyncConstants.EVENT_GET); } catch (PortalException pe) { throw new PortalException(SyncUtil.buildExceptionMessage(pe), pe); } }
@Override public SyncDLObject moveFileEntry( long fileEntryId, long newFolderId, ServiceContext serviceContext) throws PortalException { try { FileEntry fileEntry = dlAppLocalService.getFileEntry(fileEntryId); SyncUtil.checkSyncEnabled(fileEntry.getGroupId()); fileEntry = dlAppService.moveFileEntry(fileEntryId, newFolderId, serviceContext); return toSyncDLObject(fileEntry, SyncConstants.EVENT_MOVE); } catch (PortalException pe) { throw new PortalException(SyncUtil.buildExceptionMessage(pe), pe); } }
@Override public SyncDLObject moveFolder(long folderId, long parentFolderId, ServiceContext serviceContext) throws PortalException { try { Folder folder = dlAppLocalService.getFolder(folderId); SyncUtil.checkSyncEnabled(folder.getGroupId()); folder = dlAppService.moveFolder(folderId, parentFolderId, serviceContext); return toSyncDLObject(folder, SyncConstants.EVENT_MOVE); } catch (PortalException pe) { throw new PortalException(SyncUtil.buildExceptionMessage(pe), pe); } }
@Override public SyncDLObject cancelCheckOut(long fileEntryId) throws PortalException { try { FileEntry fileEntry = dlAppLocalService.getFileEntry(fileEntryId); SyncUtil.checkSyncEnabled(fileEntry.getGroupId()); dlAppService.cancelCheckOut(fileEntryId); fileEntry = dlAppLocalService.getFileEntry(fileEntryId); return toSyncDLObject(fileEntry, SyncConstants.EVENT_CANCEL_CHECK_OUT); } catch (PortalException pe) { throw new PortalException(SyncUtil.buildExceptionMessage(pe), pe); } }
@Override public SyncDLObject updateFolder( long folderId, String name, String description, ServiceContext serviceContext) throws PortalException { try { Folder folder = dlAppLocalService.getFolder(folderId); SyncUtil.checkSyncEnabled(folder.getGroupId()); folder = dlAppService.updateFolder(folderId, name, description, serviceContext); return toSyncDLObject(folder, SyncConstants.EVENT_UPDATE); } catch (PortalException pe) { throw new PortalException(SyncUtil.buildExceptionMessage(pe), pe); } }
@Override public SyncDLObject restoreFolderFromTrash(long folderId) throws PortalException { try { Folder folder = dlAppLocalService.getFolder(folderId); SyncUtil.checkSyncEnabled(folder.getGroupId()); dlAppService.restoreFolderFromTrash(folderId); folder = dlAppLocalService.getFolder(folderId); return toSyncDLObject(folder, SyncConstants.EVENT_RESTORE); } catch (PortalException pe) { throw new PortalException(SyncUtil.buildExceptionMessage(pe), pe); } }
@Override public SyncDLObject getFolderSyncDLObject(long repositoryId, long parentFolderId, String name) throws PortalException { try { SyncUtil.checkSyncEnabled(repositoryId); Folder folder = dlAppService.getFolder(repositoryId, parentFolderId, name); if (!SyncUtil.isSupportedFolder(folder)) { return null; } return toSyncDLObject(folder, SyncConstants.EVENT_GET); } catch (PortalException pe) { throw new PortalException(SyncUtil.buildExceptionMessage(pe), pe); } }
@Override public SyncDLObject checkOutFileEntry( long fileEntryId, String owner, long expirationTime, ServiceContext serviceContext) throws PortalException { try { FileEntry fileEntry = dlAppLocalService.getFileEntry(fileEntryId); SyncUtil.checkSyncEnabled(fileEntry.getGroupId()); fileEntry = dlAppService.checkOutFileEntry(fileEntryId, owner, expirationTime, serviceContext); return toSyncDLObject(fileEntry, SyncConstants.EVENT_CHECK_OUT); } catch (PortalException pe) { throw new PortalException(SyncUtil.buildExceptionMessage(pe), pe); } }
@Override public SyncDLObject checkInFileEntry( long fileEntryId, boolean majorVersion, String changeLog, ServiceContext serviceContext) throws PortalException { try { FileEntry fileEntry = dlAppLocalService.getFileEntry(fileEntryId); SyncUtil.checkSyncEnabled(fileEntry.getGroupId()); dlAppService.checkInFileEntry(fileEntryId, majorVersion, changeLog, serviceContext); fileEntry = dlAppLocalService.getFileEntry(fileEntryId); return toSyncDLObject(fileEntry, SyncConstants.EVENT_CHECK_IN); } catch (PortalException pe) { throw new PortalException(SyncUtil.buildExceptionMessage(pe), pe); } }
@Override public SyncDLObject getFolderSyncDLObject(long folderId) throws PortalException { try { Folder folder = dlAppLocalService.getFolder(folderId); SyncUtil.checkSyncEnabled(folder.getGroupId()); folder = dlAppService.getFolder(folderId); if (!SyncUtil.isSupportedFolder(folder)) { return null; } return toSyncDLObject(folder, SyncConstants.EVENT_GET); } catch (PortalException pe) { throw new PortalException(SyncUtil.buildExceptionMessage(pe), pe); } }
@Override public List<SyncDLObject> getAllFolderSyncDLObjects(long companyId, long repositoryId) throws PortalException { try { SyncUtil.checkSyncEnabled(repositoryId); repositoryService.checkRepository(repositoryId); List<SyncDLObject> syncDLObjects = syncDLObjectFinder.filterFindByC_R(companyId, repositoryId); if (!InlineSQLHelperUtil.isEnabled(repositoryId)) { return checkSyncDLObjects(syncDLObjects); } return syncDLObjects; } catch (PortalException pe) { throw new PortalException(SyncUtil.buildExceptionMessage(pe), pe); } }
@Override public List<SyncDLObject> getFileEntrySyncDLObjects(long repositoryId, long folderId) throws PortalException { try { SyncUtil.checkSyncEnabled(repositoryId); List<FileEntry> fileEntries = dlAppService.getFileEntries(repositoryId, folderId); List<SyncDLObject> syncDLObjects = new ArrayList<>(fileEntries.size()); for (FileEntry fileEntry : fileEntries) { SyncDLObject syncDLObject = toSyncDLObject(fileEntry, SyncConstants.EVENT_GET); syncDLObjects.add(syncDLObject); } return syncDLObjects; } catch (PortalException pe) { throw new PortalException(SyncUtil.buildExceptionMessage(pe), pe); } }
@Override public SyncDLObject moveFolderToTrash(long folderId) throws PortalException { try { Folder folder = dlAppLocalService.getFolder(folderId); SyncUtil.checkSyncEnabled(folder.getGroupId()); if (TrashUtil.isInTrash(DLFolderConstants.getClassName(), folderId)) { return null; } folder = dlAppService.moveFolderToTrash(folderId); return toSyncDLObject(folder, SyncConstants.EVENT_TRASH); } catch (NoSuchFolderException nsfe) { return null; } catch (PortalException pe) { throw new PortalException(SyncUtil.buildExceptionMessage(pe), pe); } }
@Override public SyncDLObject addFolder( long repositoryId, long parentFolderId, String name, String description, ServiceContext serviceContext) throws PortalException { try { Group group = groupLocalService.getGroup(repositoryId); SyncUtil.checkSyncEnabled(group.getGroupId()); if (!group.isUser() && (serviceContext.getGroupPermissions() == null)) { SyncUtil.setFilePermissions(group, true, serviceContext); } Folder folder = dlAppService.addFolder(repositoryId, parentFolderId, name, description, serviceContext); return toSyncDLObject(folder, SyncConstants.EVENT_ADD); } catch (PortalException pe) { if (pe instanceof DuplicateFolderNameException) { if (GetterUtil.getBoolean(serviceContext.getAttribute("overwrite"))) { Folder folder = dlAppService.getFolder(repositoryId, parentFolderId, name); folder = dlAppService.updateFolder(folder.getFolderId(), name, description, serviceContext); return toSyncDLObject(folder, SyncConstants.EVENT_UPDATE); } } throw new PortalException(SyncUtil.buildExceptionMessage(pe), pe); } }
@Override public SyncDLObject moveFileEntryToTrash(long fileEntryId) throws PortalException { try { FileEntry fileEntry = dlAppLocalService.getFileEntry(fileEntryId); SyncUtil.checkSyncEnabled(fileEntry.getGroupId()); if (TrashUtil.isInTrash(DLFileEntryConstants.getClassName(), fileEntryId)) { return null; } fileEntry = dlAppService.moveFileEntryToTrash(fileEntryId); return toSyncDLObject(fileEntry, SyncConstants.EVENT_TRASH); } catch (NoSuchFileEntryException nsfee) { return null; } catch (PortalException pe) { throw new PortalException(SyncUtil.buildExceptionMessage(pe), pe); } }
@Override public SyncDLObject updateFileEntry( long fileEntryId, String sourceFileName, String mimeType, String title, String description, String changeLog, boolean majorVersion, File file, String checksum, ServiceContext serviceContext) throws PortalException { try { FileEntry fileEntry = dlAppLocalService.getFileEntry(fileEntryId); SyncUtil.checkSyncEnabled(fileEntry.getGroupId()); fileEntry = dlAppService.updateFileEntry( fileEntryId, sourceFileName, mimeType, title, description, changeLog, majorVersion, file, serviceContext); return toSyncDLObject(fileEntry, SyncConstants.EVENT_UPDATE); } catch (PortalException pe) { throw new PortalException(SyncUtil.buildExceptionMessage(pe), pe); } }
protected SyncDLObject toSyncDLObject(FileEntry fileEntry, String event) throws PortalException { SyncDLObject syncDLObject = SyncUtil.toSyncDLObject(fileEntry, event); return checkModifiedTime(syncDLObject, fileEntry.getFileEntryId()); }
@Override public SyncDLObject addFileEntry( long repositoryId, long folderId, String sourceFileName, String mimeType, String title, String description, String changeLog, File file, String checksum, ServiceContext serviceContext) throws PortalException { try { Group group = groupLocalService.getGroup(repositoryId); SyncUtil.checkSyncEnabled(group.getGroupId()); if (!group.isUser() && (serviceContext.getGroupPermissions() == null)) { SyncUtil.setFilePermissions(group, false, serviceContext); } FileEntry fileEntry = dlAppService.addFileEntry( repositoryId, folderId, sourceFileName, mimeType, title, description, changeLog, file, serviceContext); return toSyncDLObject(fileEntry, SyncConstants.EVENT_ADD); } catch (PortalException pe) { if (pe instanceof DuplicateFileException) { if (GetterUtil.getBoolean(serviceContext.getAttribute("overwrite"))) { FileEntry fileEntry = dlAppService.getFileEntry(repositoryId, folderId, title); fileEntry = dlAppService.updateFileEntry( fileEntry.getFileEntryId(), sourceFileName, mimeType, title, description, changeLog, false, file, serviceContext); return toSyncDLObject(fileEntry, SyncConstants.EVENT_UPDATE); } } throw new PortalException(SyncUtil.buildExceptionMessage(pe), pe); } }
@Override public SyncDLObject patchFileEntry( long fileEntryId, long sourceVersionId, String sourceFileName, String mimeType, String title, String description, String changeLog, boolean majorVersion, File deltaFile, String checksum, ServiceContext serviceContext) throws PortalException { File patchedFile = null; try { FileEntry fileEntry = dlAppLocalService.getFileEntry(fileEntryId); SyncUtil.checkSyncEnabled(fileEntry.getGroupId()); DLFileVersion dlFileVersion = dlFileVersionLocalService.getDLFileVersion(sourceVersionId); File sourceFile = dlFileEntryLocalService.getFile(fileEntryId, dlFileVersion.getVersion(), false); patchedFile = FileUtil.createTempFile(); SyncUtil.patchFile(sourceFile, deltaFile, patchedFile); SyncDLObject syncDLObject = updateFileEntry( fileEntryId, sourceFileName, mimeType, title, description, changeLog, majorVersion, patchedFile, checksum, serviceContext); if (PortletPropsValues.SYNC_FILE_DIFF_CACHE_ENABLED && (sourceVersionId != syncDLObject.getVersionId())) { DLFileVersion targetDLFileVersion = dlFileVersionLocalService.getFileVersion(syncDLObject.getVersionId()); syncDLFileVersionDiffLocalService.addSyncDLFileVersionDiff( fileEntryId, sourceVersionId, targetDLFileVersion.getFileVersionId(), deltaFile); } return syncDLObject; } catch (PortalException pe) { throw new PortalException(SyncUtil.buildExceptionMessage(pe), pe); } finally { FileUtil.delete(patchedFile); } }
protected SyncDLObject toSyncDLObject(Folder folder, String event) throws PortalException { SyncDLObject syncDLObject = SyncUtil.toSyncDLObject(folder, event); return checkModifiedTime(syncDLObject, folder.getFolderId()); }
@Override public List<Group> getUserSitesGroups() throws PortalException { try { User user = getUser(); List<Group> groups = new ArrayList<>(); LinkedHashMap<String, Object> groupParams = new LinkedHashMap<>(); groupParams.put("active", true); groupParams.put("usersGroups", user.getUserId()); List<Group> userSiteGroups = groupLocalService.search( user.getCompanyId(), null, groupParams, QueryUtil.ALL_POS, QueryUtil.ALL_POS); for (Group userSiteGroup : userSiteGroups) { if (SyncUtil.isSyncEnabled(userSiteGroup)) { userSiteGroup.setName(userSiteGroup.getDescriptiveName()); groups.add(userSiteGroup); } } List<Organization> organizations = organizationLocalService.getOrganizations( user.getUserId(), QueryUtil.ALL_POS, QueryUtil.ALL_POS, null); for (Organization organization : organizations) { Group userOrganizationGroup = organization.getGroup(); if (SyncUtil.isSyncEnabled(userOrganizationGroup)) { groups.add(userOrganizationGroup); } if (!GetterUtil.getBoolean(PropsUtil.get(PropsKeys.ORGANIZATIONS_MEMBERSHIP_STRICT))) { for (Organization ancestorOrganization : organization.getAncestors()) { Group userAncestorOrganizationGroup = ancestorOrganization.getGroup(); if (SyncUtil.isSyncEnabled(userAncestorOrganizationGroup)) { groups.add(userAncestorOrganizationGroup); } } } } if (PrefsPropsUtil.getBoolean( user.getCompanyId(), PortletPropsKeys.SYNC_ALLOW_USER_PERSONAL_SITES, PortletPropsValues.SYNC_ALLOW_USER_PERSONAL_SITES)) { groups.add(user.getGroup()); } Collections.sort(groups, new GroupNameComparator()); return ListUtil.unique(groups); } catch (PortalException pe) { throw new PortalException(pe.getClass().getName(), pe); } }
@AccessControlled(guestAccessEnabled = true) @Override public SyncContext getSyncContext() throws PortalException { try { User user = getGuestOrUser(); SyncContext syncContext = new SyncContext(); String authType = PrefsPropsUtil.getString( CompanyThreadLocal.getCompanyId(), PropsKeys.COMPANY_SECURITY_AUTH_TYPE, PropsUtil.get(PropsKeys.COMPANY_SECURITY_AUTH_TYPE)); syncContext.setAuthType(authType); boolean oAuthEnabled = PrefsPropsUtil.getBoolean( user.getCompanyId(), PortletPropsKeys.SYNC_OAUTH_ENABLED, PortletPropsValues.SYNC_OAUTH_ENABLED); if (oAuthEnabled) { String oAuthConsumerKey = PrefsPropsUtil.getString(user.getCompanyId(), PortletPropsKeys.SYNC_OAUTH_CONSUMER_KEY); syncContext.setOAuthConsumerKey(oAuthConsumerKey); String oAuthConsumerSecret = PrefsPropsUtil.getString( user.getCompanyId(), PortletPropsKeys.SYNC_OAUTH_CONSUMER_SECRET); syncContext.setOAuthConsumerSecret(oAuthConsumerSecret); } syncContext.setOAuthEnabled(oAuthEnabled); PluginPackage syncWebPluginPackage = DeployManagerUtil.getInstalledPluginPackage("sync-web"); syncContext.setPluginVersion(syncWebPluginPackage.getVersion()); if (!user.isDefaultUser()) { syncContext.setPortalBuildNumber(ReleaseInfo.getBuildNumber()); PluginPackage soPortletPluginPackage = DeployManagerUtil.getInstalledPluginPackage("so-portlet"); syncContext.setPortletPreferencesMap(getPortletPreferencesMap()); if (soPortletPluginPackage != null) { syncContext.setSocialOfficeInstalled(true); } else { syncContext.setSocialOfficeInstalled(false); } syncContext.setUser(user); syncContext.setUserSitesGroups(getUserSitesGroups()); } return syncContext; } catch (PortalException pe) { throw new PortalException(SyncUtil.buildExceptionMessage(pe), pe); } }