🔀 Merge branch 'release/v82'
[Sone.git] / src / main / kotlin / net / pterodactylus / sone / web / pages / DeletePostPage.kt
1 package net.pterodactylus.sone.web.pages
2
3 import net.pterodactylus.sone.data.*
4 import net.pterodactylus.sone.main.*
5 import net.pterodactylus.sone.utils.*
6 import net.pterodactylus.sone.web.*
7 import net.pterodactylus.sone.web.page.*
8 import net.pterodactylus.util.template.*
9 import javax.inject.*
10
11 /**
12  * Lets the user delete a post they made.
13  */
14 @TemplatePath("/templates/deletePost.html")
15 @ToadletPath("deletePost.html")
16 class DeletePostPage @Inject constructor(webInterface: WebInterface, loaders: Loaders, templateRenderer: TemplateRenderer) :
17                 LoggedInPage("Page.DeletePost.Title", webInterface, loaders, templateRenderer) {
18
19         override fun handleRequest(soneRequest: SoneRequest, currentSone: Sone, templateContext: TemplateContext) {
20                 if (soneRequest.isPOST) {
21                         val post = soneRequest.core.getPost(soneRequest.httpRequest.getPartAsStringFailsafe("post", 36)) ?: redirectTo("noPermission.html")
22                         val returnPage = soneRequest.httpRequest.getPartAsStringFailsafe("returnPage", 256)
23                         if (!post.sone.isLocal) {
24                                 redirectTo("noPermission.html")
25                         }
26                         if (soneRequest.httpRequest.isPartSet("confirmDelete")) {
27                                 soneRequest.core.deletePost(post)
28                                 redirectTo(returnPage)
29                         } else if (soneRequest.httpRequest.isPartSet("abortDelete")) {
30                                 redirectTo(returnPage)
31                         }
32                         templateContext["post"] = post
33                         templateContext["returnPage"] = returnPage
34                         return
35                 }
36                 templateContext["post"] = soneRequest.core.getPost(soneRequest.httpRequest.getParam("post")) ?: redirectTo("noPermission.html")
37                 templateContext["returnPage"] = soneRequest.httpRequest.getParam("returnPage")
38         }
39
40 }