X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2FDeleteProfileFieldPage.java;fp=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2FDeleteProfileFieldPage.java;h=9b52b04be85c26b4b2deb0ca8b82235ef492efef;hb=043b045d6e3f3908597d789606368d0b08ef6a59;hp=2d10b72ccbda4f2fa687df19a24cea1fadc488a7;hpb=9219b1f99194ae462c6b542f65666a1cc4589066;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/web/DeleteProfileFieldPage.java b/src/main/java/net/pterodactylus/sone/web/DeleteProfileFieldPage.java index 2d10b72..9b52b04 100644 --- a/src/main/java/net/pterodactylus/sone/web/DeleteProfileFieldPage.java +++ b/src/main/java/net/pterodactylus/sone/web/DeleteProfileFieldPage.java @@ -18,9 +18,9 @@ package net.pterodactylus.sone.web; import net.pterodactylus.sone.data.Profile; +import net.pterodactylus.sone.data.Profile.Field; import net.pterodactylus.sone.data.Sone; import net.pterodactylus.sone.web.page.Page.Request.Method; -import net.pterodactylus.util.number.Numbers; import net.pterodactylus.util.template.DataProvider; import net.pterodactylus.util.template.Template; @@ -55,29 +55,30 @@ public class DeleteProfileFieldPage extends SoneTemplatePage { super.processTemplate(request, dataProvider); Sone currentSone = getCurrentSone(request.getToadletContext()); Profile profile = currentSone.getProfile(); - int fieldIndex = Numbers.safeParseInteger(request.getHttpRequest().getParam("field"), -1); - if (fieldIndex >= currentSone.getProfile().getFieldNames().size()) { - fieldIndex = -1; - } - String fieldName = null; - String fieldValue = null; - if (fieldIndex > -1) { - fieldName = profile.getFieldNames().get(fieldIndex); - fieldValue = profile.getField(fieldName); + + /* get parameters from request. */ + String fieldId = request.getHttpRequest().getParam("field"); + Field field = profile.getFieldById(fieldId); + if (field == null) { + throw new RedirectException("invalid.html"); } + + /* process POST request. */ if (request.getMethod() == Method.POST) { if (request.getHttpRequest().getPartAsStringFailsafe("confirm", 4).equals("true")) { - fieldIndex = Numbers.safeParseInteger(request.getHttpRequest().getPartAsStringFailsafe("field", 11), -1); - if (fieldIndex > -1) { - profile.removeField(fieldIndex); + fieldId = request.getHttpRequest().getParam("field"); + field = profile.getFieldById(fieldId); + if (field == null) { + throw new RedirectException("invalid.html"); } + profile.removeField(field); currentSone.setProfile(profile); } throw new RedirectException("editProfile.html#profile-fields"); } - dataProvider.set("fieldIndex", fieldIndex); - dataProvider.set("fieldName", fieldName); - dataProvider.set("fieldValue", fieldValue); + + /* set current values in template. */ + dataProvider.set("field", field); } }