b03d768c1436f7c6d7cc97c975da29a33158c1f7
[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.Sone
4 import net.pterodactylus.sone.main.*
5 import net.pterodactylus.sone.utils.isPOST
6 import net.pterodactylus.sone.web.WebInterface
7 import net.pterodactylus.sone.web.page.*
8 import net.pterodactylus.util.template.Template
9 import net.pterodactylus.util.template.TemplateContext
10 import javax.inject.Inject
11
12 /**
13  * Lets the user delete a post they made.
14  */
15 class DeletePostPage @Inject constructor(template: Template, webInterface: WebInterface, loaders: Loaders):
16                 LoggedInPage("deletePost.html", template, "Page.DeletePost.Title", webInterface, loaders) {
17
18         override fun handleRequest(soneRequest: SoneRequest, currentSone: Sone, templateContext: TemplateContext) {
19                 if (soneRequest.isPOST) {
20                         val post = soneRequest.core.getPost(soneRequest.httpRequest.getPartAsStringFailsafe("post", 36)) ?: throw RedirectException("noPermission.html")
21                         val returnPage = soneRequest.httpRequest.getPartAsStringFailsafe("returnPage", 256)
22                         if (!post.sone.isLocal) {
23                                 throw RedirectException("noPermission.html")
24                         }
25                         if (soneRequest.httpRequest.isPartSet("confirmDelete")) {
26                                 soneRequest.core.deletePost(post)
27                                 throw RedirectException(returnPage)
28                         } else if (soneRequest.httpRequest.isPartSet("abortDelete")) {
29                                 throw RedirectException(returnPage)
30                         }
31                         templateContext["post"] = post
32                         templateContext["returnPage"] = returnPage
33                         return
34                 }
35                 templateContext["post"] = soneRequest.core.getPost(soneRequest.httpRequest.getParam("post")) ?: throw RedirectException("noPermission.html")
36                 templateContext["returnPage"] = soneRequest.httpRequest.getParam("returnPage")
37         }
38
39 }