Skip to content
Snippets Groups Projects
Commit 24ce5517 authored by srosse's avatar srosse
Browse files

OO-3033: filter for MySQL the content of external blog entries

parent 7b7a2aa9
No related branches found
No related tags found
No related merge requests found
......@@ -34,6 +34,7 @@ import java.util.Properties;
import org.olat.core.id.Persistable;
import org.olat.core.util.Formatter;
import org.olat.core.util.StringHelper;
import org.olat.core.util.filter.FilterFactory;
/**
......@@ -395,4 +396,17 @@ public class PersistenceHelper {
Object obj = results[pos];
return obj == null ? null : ((Boolean)obj).booleanValue();
}
public static final String convert(String content) {
if(StringHelper.containsNonWhitespace(content)) {
StringBuilder sb = new StringBuilder(content.length() + 100);
for(char ch : content.toCharArray()) {
if(ch < 55000) {
sb.append(ch);
}
}
return sb.toString();
}
return content;
}
}
......@@ -33,6 +33,8 @@ import org.olat.basesecurity.BaseSecurityManager;
import org.olat.core.CoreSpringFactory;
import org.olat.core.commons.modules.bc.meta.tagged.MetaTagged;
import org.olat.core.commons.modules.bc.vfs.OlatRootFolderImpl;
import org.olat.core.commons.persistence.DB;
import org.olat.core.commons.persistence.PersistenceHelper;
import org.olat.core.commons.services.commentAndRating.CommentAndRatingService;
import org.olat.core.commons.services.image.Size;
import org.olat.core.commons.services.notifications.NotificationsManager;
......@@ -106,6 +108,8 @@ public class FeedManagerImpl extends FeedManager {
private OLATResourceManager resourceManager;
private FileResourceManager fileResourceManager;
@Autowired
private DB dbInstance;
@Autowired
private FeedDAO feedDAO;
@Autowired
......@@ -514,6 +518,10 @@ public class FeedManagerImpl extends FeedManager {
if (externalItem.getPublishDate() == null) {
externalItem.setPublishDate(now);
}
if(dbInstance.isMySQL()) {
mysqlCleanUp(externalItem);
}
itemDAO.createItem(feed, externalItem);
} else {
// Do not overwrite initial values
......@@ -529,11 +537,20 @@ public class FeedManagerImpl extends FeedManager {
reloaded.setDescription(externalItem.getDescription());
reloaded.setContent(externalItem.getContent());
reloaded.setEnclosure(externalItem.getEnclosure());
if(dbInstance.isMySQL()) {
mysqlCleanUp(externalItem);
}
itemDAO.updateItem(reloaded);
}
}
}
private void mysqlCleanUp(Item item) {
item.setTitle(PersistenceHelper.convert(item.getTitle()));
item.setContent(PersistenceHelper.convert(item.getContent()));
item.setDescription(PersistenceHelper.convert(item.getDescription()));
}
private void markPublisherNews(Feed feed) {
if (feed == null) return;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment