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

OO-689: escape the change log

parent 25b61c06
No related branches found
No related tags found
No related merge requests found
...@@ -75,6 +75,9 @@ junit and integration tests in OpenOLAT 8 ...@@ -75,6 +75,9 @@ junit and integration tests in OpenOLAT 8
mvn -Parquillian surefire:test mvn -Parquillian surefire:test
You can add "clean-mysql-dbsetup" to the profils to drop / restore the database You can add "clean-mysql-dbsetup" to the profils to drop / restore the database
The Selenium tests can be run with different browser but with some limitations:
- Chrome cannot do an upload
- Selenium need Firefox version 17
* Execute a single selenium functional integration test in Eclipse * Execute a single selenium functional integration test in Eclipse
----------------------------------------- -----------------------------------------
......
...@@ -54,6 +54,7 @@ import org.olat.core.logging.AssertException; ...@@ -54,6 +54,7 @@ import org.olat.core.logging.AssertException;
import org.olat.core.logging.OLATRuntimeException; import org.olat.core.logging.OLATRuntimeException;
import org.olat.core.logging.activity.ThreadLocalUserActivityLogger; import org.olat.core.logging.activity.ThreadLocalUserActivityLogger;
import org.olat.core.util.Formatter; import org.olat.core.util.Formatter;
import org.olat.core.util.StringHelper;
import org.olat.core.util.UserSession; import org.olat.core.util.UserSession;
import org.olat.core.util.event.EventBus; import org.olat.core.util.event.EventBus;
import org.olat.core.util.event.GenericEventListener; import org.olat.core.util.event.GenericEventListener;
...@@ -184,14 +185,13 @@ public class IQRunController extends BasicController implements GenericEventList ...@@ -184,14 +185,13 @@ public class IQRunController extends BasicController implements GenericEventList
RepositoryEntry re = courseNode.getReferencedRepositoryEntry(); RepositoryEntry re = courseNode.getReferencedRepositoryEntry();
//re could be null, but if we are here it should not be null! //re could be null, but if we are here it should not be null!
Roles userRoles = ureq.getUserSession().getRoles(); Roles userRoles = ureq.getUserSession().getRoles();
boolean showAll = false; boolean showAll = userRoles.isAuthor() || userRoles.isOLATAdmin();
showAll = userRoles.isAuthor() || userRoles.isOLATAdmin();
//get changelog //get changelog
Formatter formatter = Formatter.getInstance(ureq.getLocale()); Formatter formatter = Formatter.getInstance(ureq.getLocale());
ImsRepositoryResolver resolver = new ImsRepositoryResolver(re.getKey()); ImsRepositoryResolver resolver = new ImsRepositoryResolver(re.getKey());
QTIChangeLogMessage[] qtiChangeLog = resolver.getDocumentChangeLog(); QTIChangeLogMessage[] qtiChangeLog = resolver.getDocumentChangeLog();
StringBuilder qtiChangelog = new StringBuilder(); StringBuilder qtiChangelog = new StringBuilder();
Date msgDate = null;
if(qtiChangeLog.length>0){ if(qtiChangeLog.length>0){
//there are resource changes //there are resource changes
Arrays.sort(qtiChangeLog); Arrays.sort(qtiChangeLog);
...@@ -199,15 +199,17 @@ public class IQRunController extends BasicController implements GenericEventList ...@@ -199,15 +199,17 @@ public class IQRunController extends BasicController implements GenericEventList
//show latest change first //show latest change first
if(!showAll && qtiChangeLog[i].isPublic()){ if(!showAll && qtiChangeLog[i].isPublic()){
//logged in person is a normal user, hence public messages only //logged in person is a normal user, hence public messages only
msgDate=new Date(qtiChangeLog[i].getTimestmp()); Date msgDate = new Date(qtiChangeLog[i].getTimestmp());
qtiChangelog.append("\nChange date: ").append(formatter.formatDateAndTime(msgDate)).append("\n"); qtiChangelog.append("\nChange date: ").append(formatter.formatDateAndTime(msgDate)).append("\n");
qtiChangelog.append(qtiChangeLog[i].getLogMessage()); String msg = StringHelper.escapeHtml(qtiChangeLog[i].getLogMessage());
qtiChangelog.append(msg);
qtiChangelog.append("\n********************************\n"); qtiChangelog.append("\n********************************\n");
}else if (showAll){ }else if (showAll){
//logged in person is an author, olat admin, owner, show all messages //logged in person is an author, olat admin, owner, show all messages
msgDate=new Date(qtiChangeLog[i].getTimestmp()); Date msgDate = new Date(qtiChangeLog[i].getTimestmp());
qtiChangelog.append("\nChange date: ").append(formatter.formatDateAndTime(msgDate)).append("\n"); qtiChangelog.append("\nChange date: ").append(formatter.formatDateAndTime(msgDate)).append("\n");
qtiChangelog.append(qtiChangeLog[i].getLogMessage()); String msg = StringHelper.escapeHtml(qtiChangeLog[i].getLogMessage());
qtiChangelog.append(msg);
qtiChangelog.append("\n********************************\n"); qtiChangelog.append("\n********************************\n");
}//else non public messages are not shown to normal user }//else non public messages are not shown to normal user
} }
......
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