🔀 Merge branch 'release/v82'
[Sone.git] / src / main / kotlin / net / pterodactylus / sone / web / ajax / JsonPage.kt
index 1136616..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,33 +15,33 @@ 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 fun needsFormPassword() = true
-       open fun requiresLogin() = true
+       open val needsFormPassword = true
+       open val requiresLogin = true
 
        protected fun createSuccessJsonObject() = JsonReturnObject(true)
        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.isRequireFullAccess && !request.toadletContext.isAllowedFullAccess) {
+               if (core.preferences.requireFullAccess && !request.toadletContext.isAllowedFullAccess) {
                        return response.setStatusCode(403).setStatusText("Forbidden").setContentType("application/json").write(createErrorJsonObject("auth-required").asJsonString())
                }
-               if (needsFormPassword() && request.parameters["formPassword"] != webInterface.formPassword) {
+               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 {