🔀 Merge branch 'release/v82'
[Sone.git] / src / main / kotlin / net / pterodactylus / sone / web / ajax / JsonPage.kt
index 5b56031..356aca6 100644 (file)
@@ -5,7 +5,7 @@ import freenet.clients.http.ToadletContext
 import net.pterodactylus.sone.utils.parameters
 import net.pterodactylus.sone.web.SessionProvider
 import net.pterodactylus.sone.web.WebInterface
-import net.pterodactylus.sone.web.page.FreenetRequest
+import net.pterodactylus.sone.web.page.*
 import net.pterodactylus.util.web.Page
 import net.pterodactylus.util.web.Response
 import java.io.ByteArrayOutputStream
@@ -15,13 +15,13 @@ import java.io.PrintStream
  * A JSON page is a specialized [Page] that will always return a JSON
  * object to the browser, e.g. for use with AJAX or other scripting frameworks.
  */
-abstract class JsonPage(private val path: String, protected val webInterface: WebInterface) : Page<FreenetRequest> {
+abstract class JsonPage(protected val webInterface: WebInterface) : Page<FreenetRequest> {
 
        private val objectMapper = ObjectMapper()
        private val sessionProvider: SessionProvider = webInterface
        protected val core = webInterface.core
 
-       override fun getPath() = path
+       override fun getPath() = toadletPath
        override fun isPrefixPage() = false
 
        open val needsFormPassword = true
@@ -31,8 +31,8 @@ abstract class JsonPage(private val path: String, protected val webInterface: We
        protected fun createErrorJsonObject(error: String) =
                        JsonErrorReturnObject(error)
 
-       protected fun getCurrentSone(toadletContext: ToadletContext, createSession: Boolean = true) =
-                       sessionProvider.getCurrentSone(toadletContext, createSession)
+       protected fun getCurrentSone(toadletContext: ToadletContext) =
+                       sessionProvider.getCurrentSone(toadletContext)
 
        override fun handleRequest(request: FreenetRequest, response: Response): Response {
                if (core.preferences.requireFullAccess && !request.toadletContext.isAllowedFullAccess) {
@@ -41,7 +41,7 @@ abstract class JsonPage(private val path: String, protected val webInterface: We
                if (needsFormPassword && request.parameters["formPassword"] != webInterface.formPassword) {
                        return response.setStatusCode(403).setStatusText("Forbidden").setContentType("application/json").write(createErrorJsonObject("auth-required").asJsonString())
                }
-               if (requiresLogin && (sessionProvider.getCurrentSone(request.toadletContext, false) == null)) {
+               if (requiresLogin && (sessionProvider.getCurrentSone(request.toadletContext) == null)) {
                        return response.setStatusCode(403).setStatusText("Forbidden").setContentType("application/json").write(createErrorJsonObject("auth-required").asJsonString())
                }
                return try {