Add delete buttons
This commit is contained in:
parent
0026643a0a
commit
fd41c3a72e
1 changed files with 133 additions and 3 deletions
|
@ -2,8 +2,6 @@ package de.kif.backend.route
|
||||||
|
|
||||||
import de.kif.backend.authenticate
|
import de.kif.backend.authenticate
|
||||||
import de.kif.backend.authenticateOrRedirect
|
import de.kif.backend.authenticateOrRedirect
|
||||||
import de.kif.backend.repository.TrackRepository
|
|
||||||
import de.kif.backend.repository.WorkGroupRepository
|
|
||||||
import de.kif.backend.route.api.error
|
import de.kif.backend.route.api.error
|
||||||
import de.kif.backend.util.Backup
|
import de.kif.backend.util.Backup
|
||||||
import de.kif.backend.util.WikiImporter
|
import de.kif.backend.util.WikiImporter
|
||||||
|
@ -27,6 +25,7 @@ import io.ktor.util.toMap
|
||||||
import kotlinx.html.*
|
import kotlinx.html.*
|
||||||
import mu.KotlinLogging
|
import mu.KotlinLogging
|
||||||
import de.kif.backend.prefix
|
import de.kif.backend.prefix
|
||||||
|
import de.kif.backend.repository.*
|
||||||
|
|
||||||
private val logger = KotlinLogging.logger {}
|
private val logger = KotlinLogging.logger {}
|
||||||
|
|
||||||
|
@ -107,7 +106,7 @@ fun Route.account() {
|
||||||
if (user.checkPermission(Permission.ADMIN)) {
|
if (user.checkPermission(Permission.ADMIN)) {
|
||||||
a("$prefix/account/backup.json", classes = "form-btn") {
|
a("$prefix/account/backup.json", classes = "form-btn") {
|
||||||
attributes["download"] = "backup.json"
|
attributes["download"] = "backup.json"
|
||||||
+"Alles sichern" // TODO: richtiger Text?
|
+"Alles sichern"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -162,6 +161,46 @@ fun Route.account() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
div("account-delete") {
|
||||||
|
h1 { +"Löschen -- Gefährlicher Bereich --" }
|
||||||
|
|
||||||
|
if (user.checkPermission(Permission.ROOM)) {
|
||||||
|
a("$prefix/account/backup/delete/rooms", classes = "form-btn btn-danger") {
|
||||||
|
+"Räume löschen"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (user.checkPermission(Permission.USER)) {
|
||||||
|
a("$prefix/account/backup/delete/users", classes = "form-btn btn-danger") {
|
||||||
|
+"Nutzer löschen"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (user.checkPermission(Permission.POST)) {
|
||||||
|
a("$prefix/account/backup/delete/posts", classes = "form-btn btn-danger") {
|
||||||
|
+"Beiträge löschen"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (user.checkPermission(Permission.WORK_GROUP)) {
|
||||||
|
a("$prefix/account/backup/delete/work-groups", classes = "form-btn btn-danger") {
|
||||||
|
+"Arbeitskreise löschen"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (
|
||||||
|
user.checkPermission(Permission.WORK_GROUP) &&
|
||||||
|
user.checkPermission(Permission.ROOM) &&
|
||||||
|
user.checkPermission(Permission.SCHEDULE)
|
||||||
|
) {
|
||||||
|
a("$prefix/account/backup/delete/schedules", classes = "form-btn btn-danger") {
|
||||||
|
+"Zeitplan löschen"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (user.checkPermission(Permission.ADMIN)) {
|
||||||
|
a("$prefix/account/backup/delete/all", classes = "form-btn btn-danger") {
|
||||||
|
+"Alles löschen"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -393,4 +432,95 @@ fun Route.account() {
|
||||||
call.error(HttpStatusCode.Unauthorized)
|
call.error(HttpStatusCode.Unauthorized)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
get("/account/backup/delete/rooms") {
|
||||||
|
authenticate(Permission.ROOM) {
|
||||||
|
ScheduleRepository.all().forEach {
|
||||||
|
if (it.id != null) ScheduleRepository.delete(it.id)
|
||||||
|
}
|
||||||
|
RoomRepository.all().forEach {
|
||||||
|
if (it.id != null) RoomRepository.delete(it.id)
|
||||||
|
}
|
||||||
|
call.respondRedirect("$prefix/")
|
||||||
|
} onFailure {
|
||||||
|
call.error(HttpStatusCode.Unauthorized)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
get("/account/backup/delete/users") {
|
||||||
|
authenticate(Permission.USER) {
|
||||||
|
UserRepository.all().forEach {
|
||||||
|
if (it.id != null) UserRepository.delete(it.id)
|
||||||
|
}
|
||||||
|
call.respondRedirect("$prefix/")
|
||||||
|
} onFailure {
|
||||||
|
call.error(HttpStatusCode.Unauthorized)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
get("/account/backup/delete/posts") {
|
||||||
|
authenticate(Permission.POST) {
|
||||||
|
PostRepository.all().forEach {
|
||||||
|
if (it.id != null) PostRepository.delete(it.id)
|
||||||
|
}
|
||||||
|
call.respondRedirect("$prefix/")
|
||||||
|
} onFailure {
|
||||||
|
call.error(HttpStatusCode.Unauthorized)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
get("/account/backup/delete/work-groups") {
|
||||||
|
authenticate(Permission.WORK_GROUP) {
|
||||||
|
ScheduleRepository.all().forEach {
|
||||||
|
if (it.id != null) ScheduleRepository.delete(it.id)
|
||||||
|
}
|
||||||
|
TrackRepository.all().forEach {
|
||||||
|
if (it.id != null) TrackRepository.delete(it.id)
|
||||||
|
}
|
||||||
|
WorkGroupRepository.all().forEach {
|
||||||
|
if (it.id != null) WorkGroupRepository.delete(it.id)
|
||||||
|
}
|
||||||
|
call.respondRedirect("$prefix/")
|
||||||
|
} onFailure {
|
||||||
|
call.error(HttpStatusCode.Unauthorized)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
get("/account/backup/delete/schedules") {
|
||||||
|
authenticate(Permission.ROOM, Permission.WORK_GROUP, Permission.SCHEDULE) {
|
||||||
|
ScheduleRepository.all().forEach {
|
||||||
|
if (it.id != null) ScheduleRepository.delete(it.id)
|
||||||
|
}
|
||||||
|
call.respondRedirect("$prefix/")
|
||||||
|
} onFailure {
|
||||||
|
call.error(HttpStatusCode.Unauthorized)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
get("/account/backup/delete/all") {
|
||||||
|
authenticate(Permission.ADMIN) {
|
||||||
|
ScheduleRepository.all().forEach {
|
||||||
|
if (it.id != null) ScheduleRepository.delete(it.id)
|
||||||
|
}
|
||||||
|
TrackRepository.all().forEach {
|
||||||
|
if (it.id != null) TrackRepository.delete(it.id)
|
||||||
|
}
|
||||||
|
WorkGroupRepository.all().forEach {
|
||||||
|
if (it.id != null) WorkGroupRepository.delete(it.id)
|
||||||
|
}
|
||||||
|
RoomRepository.all().forEach {
|
||||||
|
if (it.id != null) RoomRepository.delete(it.id)
|
||||||
|
}
|
||||||
|
UserRepository.all().forEach {
|
||||||
|
if (it.id != null) UserRepository.delete(it.id)
|
||||||
|
}
|
||||||
|
PostRepository.all().forEach {
|
||||||
|
if (it.id != null) PostRepository.delete(it.id)
|
||||||
|
}
|
||||||
|
call.respondRedirect("$prefix/")
|
||||||
|
} onFailure {
|
||||||
|
call.error(HttpStatusCode.Unauthorized)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue