Add base JSON page that requires a logged-in user
[Sone.git] / src / main / kotlin / net / pterodactylus / sone / web / ajax / DeleteProfileFieldAjaxPage.kt
index 5e7c901..9595a8c 100644 (file)
@@ -1,5 +1,6 @@
 package net.pterodactylus.sone.web.ajax
 
+import net.pterodactylus.sone.data.Sone
 import net.pterodactylus.sone.utils.parameters
 import net.pterodactylus.sone.web.WebInterface
 import net.pterodactylus.sone.web.page.FreenetRequest
@@ -7,21 +8,19 @@ import net.pterodactylus.sone.web.page.FreenetRequest
 /**
  * AJAX page that lets the user delete a profile field.
  */
-class DeleteProfileFieldAjaxPage(webInterface: WebInterface) : JsonPage("deleteProfileField.ajax", webInterface) {
+class DeleteProfileFieldAjaxPage(webInterface: WebInterface) : LoggedInJsonPage("deleteProfileField.ajax", webInterface) {
 
-       override fun createJsonObject(request: FreenetRequest) =
-                       getCurrentSone(request.toadletContext)!!.let { currentSone ->
-                               currentSone.profile.let { profile ->
-                                       request.parameters["field"]
-                                                       ?.let(profile::getFieldById)
-                                                       ?.let { field ->
-                                                               createSuccessJsonObject().also {
-                                                                       profile.removeField(field)
-                                                                       currentSone.profile = profile
-                                                                       webInterface.core.touchConfiguration()
-                                                               }
-                                                       } ?: createErrorJsonObject("invalid-field-id")
-                               }
+       override fun createJsonObject(currentSone: Sone, request: FreenetRequest) =
+                       currentSone.profile.let { profile ->
+                               request.parameters["field"]
+                                               ?.let(profile::getFieldById)
+                                               ?.let { field ->
+                                                       createSuccessJsonObject().also {
+                                                               profile.removeField(field)
+                                                               currentSone.profile = profile
+                                                               webInterface.core.touchConfiguration()
+                                                       }
+                                               } ?: createErrorJsonObject("invalid-field-id")
                        }
 
 }