Skip to content
Snippets Groups Projects
Commit fe2c349a authored by User expired's avatar User expired
Browse files

openolat#137: using the new identitykey parameter for error feedback handling

parent a2134e1e
No related branches found
No related tags found
No related merge requests found
......@@ -82,10 +82,16 @@ public class ErrorFeedbackMailer implements Dispatcher {
public void sendMail(HttpServletRequest request) {
String feedback = request.getParameter("textarea");
String errorNr = request.getParameter("fx_errnum");
String username = request.getParameter("username");
String userIdentityKey = request.getParameter("useridentitykey");
try {
if(StringHelper.containsNonWhitespace(username)) {
Identity ident = securityManager.findIdentityByName(username);
if(StringHelper.containsNonWhitespace(feedback)) {
Identity ident = securityManager.loadIdentityByKey(Long.valueOf(userIdentityKey),true);
String username;
if (ident == null) {
username = "n/a";
} else {
username = ident.getName();
}
Collection<String> logFileEntries = LogFileParser.getErrorToday(errorNr, false);
StringBuilder out = new StringBuilder(2048);
out.append(feedback)
......@@ -97,12 +103,16 @@ public class ErrorFeedbackMailer implements Dispatcher {
}
MailBundle bundle = new MailBundle();
bundle.setFromId(ident);
if (ident == null) {
bundle.setFrom(WebappHelper.getMailConfig("mailError"));
} else {
bundle.setFromId(ident);
}
bundle.setTo(WebappHelper.getMailConfig("mailError"));
bundle.setContent("Feedback from Error Nr.: " + errorNr, "<pre>" + StringEscapeUtils.escapeHtml(out.toString()) + "</pre>");
mailManager.sendExternMessage(bundle, null, false);
} else {
log.error("Try to send a feedback without identity");
log.error("Try to send a feedback without text");
}
} catch (Exception e) {
handleException(request, e);
......@@ -111,9 +121,9 @@ public class ErrorFeedbackMailer implements Dispatcher {
private void handleException(HttpServletRequest request, Exception e) {
String feedback = request.getParameter("textarea");
String username = request.getParameter("username");
String userIdentityKey = request.getParameter("useridentitykey");
log.error("Error sending error feedback mail to OpenOLAT error support (" + WebappHelper.getMailConfig("mailError") + ") from: "
+ username + " with content: " + feedback, e);
+ userIdentityKey + " with content: " + feedback, e);
}
@Override
......
......@@ -195,7 +195,7 @@ public class ExceptionWindowController extends DefaultChiefController {
msg.contextPut("stacktrace", OLATRuntimeException.throwableToHtml(th));
Identity curIdent = ureq.getIdentity();
msg.contextPut("username", curIdent == null? "n/a" : curIdent.getKey());
msg.contextPut("userIdentityKey", curIdent == null? "n/a" : curIdent.getKey());
msg.contextPut("allowBackButton", Boolean.valueOf(allowBackButton));
msg.contextPut("detailedmessage", detailedmessage);
// Cluster request reference number
......@@ -241,15 +241,13 @@ public class ExceptionWindowController extends DefaultChiefController {
// send email to support address
try {
// if null, user may crashed before getting a valid session, try with
// guest user instead
MailBundle bundle = new MailBundle();
// if null, user may crashed before getting a valid session
if (curIdent == null) {
BaseSecurity im = CoreSpringFactory.getImpl(BaseSecurity.class);
curIdent = im.findIdentityByName("guest");
bundle.setFrom(WebappHelper.getMailConfig("mailError"));
} else {
bundle.setFromId(curIdent);
}
MailBundle bundle = new MailBundle();
bundle.setFromId(curIdent);
bundle.setTo(WebappHelper.getMailConfig("mailError"));
bundle.setContent(
"**RedScreen** Nr.: " + Settings.getNodeInfo() + "-E" + refNum,
......@@ -257,8 +255,8 @@ public class ExceptionWindowController extends DefaultChiefController {
StringEscapeUtils.escapeHtml(
"**RedScreen** " + o3e.getLogMsg() + "\n" +
formatter.formatDateAndTime(new Date()) + "\n" +
"Username: " + curIdent.getName() + "\n" +
"Stacktrace:\n" +
"Username: " + (curIdent == null ? "null" : curIdent.getName()) + "\n" +
"Stacktrace:\n" +
OLATRuntimeException.throwableToHtml(th).replaceAll("<br />", "\n") + "\n\n" +
"ListenerInfo\n" +
componentListenerInfo + "\n" +
......
......@@ -145,7 +145,7 @@ $r.renderHeaderIncludes()
</a>
</div>
<input type="hidden" name="username" value="$username" />
<input type="hidden" name="useridentitykey" value="$userIdentityKey" />
<input type="hidden" name="fx_errnum" value="${errnum}" />
<textarea rows="15" name="textarea" class="form-control">
$r.translate('error.errnum') ${errnum}
......
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