X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2FEditProfilePage.java;h=cffdeb9144f52ae58a7b7d1f98a3ef676a57f258;hp=c79a1e91d3e92f7584d366e8828c62788e7e99e7;hb=9acbc5bdec4ccb752e0856a501568b0bb6161579;hpb=9cb50c365e3bf7a74ffa40a45630a0e7be40b526 diff --git a/src/main/java/net/pterodactylus/sone/web/EditProfilePage.java b/src/main/java/net/pterodactylus/sone/web/EditProfilePage.java index c79a1e9..cffdeb9 100644 --- a/src/main/java/net/pterodactylus/sone/web/EditProfilePage.java +++ b/src/main/java/net/pterodactylus/sone/web/EditProfilePage.java @@ -1,5 +1,5 @@ /* - * Sone - EditProfilePage.java - Copyright © 2010–2013 David Roden + * Sone - EditProfilePage.java - Copyright © 2010–2016 David Roden * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,13 +17,16 @@ package net.pterodactylus.sone.web; +import static net.pterodactylus.sone.text.TextFilter.filter; +import static net.pterodactylus.sone.utils.NumberParsers.parseInt; + import java.util.List; import net.pterodactylus.sone.data.Profile; +import net.pterodactylus.sone.data.Profile.DuplicateField; import net.pterodactylus.sone.data.Profile.Field; import net.pterodactylus.sone.data.Sone; import net.pterodactylus.sone.web.page.FreenetRequest; -import net.pterodactylus.util.number.Numbers; import net.pterodactylus.util.template.Template; import net.pterodactylus.util.template.TemplateContext; import net.pterodactylus.util.web.Method; @@ -56,8 +59,7 @@ public class EditProfilePage extends SoneTemplatePage { * {@inheritDoc} */ @Override - protected void processTemplate(FreenetRequest request, TemplateContext templateContext) throws RedirectException { - super.processTemplate(request, templateContext); + protected void handleRequest(FreenetRequest request, TemplateContext templateContext) throws RedirectException { ToadletContext toadletContenxt = request.getToadletContext(); Sone currentSone = getCurrentSone(toadletContenxt); Profile profile = currentSone.getProfile(); @@ -74,9 +76,9 @@ public class EditProfilePage extends SoneTemplatePage { firstName = request.getHttpRequest().getPartAsStringFailsafe("first-name", 256).trim(); middleName = request.getHttpRequest().getPartAsStringFailsafe("middle-name", 256).trim(); lastName = request.getHttpRequest().getPartAsStringFailsafe("last-name", 256).trim(); - birthDay = Numbers.safeParseInteger(request.getHttpRequest().getPartAsStringFailsafe("birth-day", 256).trim()); - birthMonth = Numbers.safeParseInteger(request.getHttpRequest().getPartAsStringFailsafe("birth-month", 256).trim()); - birthYear = Numbers.safeParseInteger(request.getHttpRequest().getPartAsStringFailsafe("birth-year", 256).trim()); + birthDay = parseInt(request.getHttpRequest().getPartAsStringFailsafe("birth-day", 256).trim(), null); + birthMonth = parseInt(request.getHttpRequest().getPartAsStringFailsafe("birth-month", 256).trim(), null); + birthYear = parseInt(request.getHttpRequest().getPartAsStringFailsafe("birth-year", 256).trim(), null); avatarId = request.getHttpRequest().getPartAsStringFailsafe("avatarId", 36); profile.setFirstName(firstName.length() > 0 ? firstName : null); profile.setMiddleName(middleName.length() > 0 ? middleName : null); @@ -85,7 +87,8 @@ public class EditProfilePage extends SoneTemplatePage { profile.setAvatar(webInterface.getCore().getImage(avatarId, false)); for (Field field : fields) { String value = request.getHttpRequest().getPartAsStringFailsafe("field-" + field.getId(), 400); - field.setValue(value); + String filteredValue = filter(request.getHttpRequest().getHeader("Host"), value); + field.setValue(filteredValue); } currentSone.setProfile(profile); webInterface.getCore().touchConfiguration(); @@ -95,10 +98,9 @@ public class EditProfilePage extends SoneTemplatePage { try { profile.addField(fieldName); currentSone.setProfile(profile); - fields = profile.getFields(); webInterface.getCore().touchConfiguration(); throw new RedirectException("editProfile.html#profile-fields"); - } catch (IllegalArgumentException iae1) { + } catch (DuplicateField df1) { templateContext.set("fieldName", fieldName); templateContext.set("duplicateFieldName", true); }