198 lines
3 KiB
Go
198 lines
3 KiB
Go
// Copyright (C) 2019 Marius Schellenberger
|
|
|
|
package server
|
|
|
|
import "git.giftfish.de/ston1th/gowiki/pkg/core"
|
|
|
|
type route struct {
|
|
Path string
|
|
Handler ctxHandler
|
|
Methods []string
|
|
}
|
|
|
|
var static = []route{
|
|
{
|
|
core.Favicon,
|
|
staticHandler,
|
|
[]string{"GET"},
|
|
},
|
|
{
|
|
core.BootstrapCSS,
|
|
staticHandler,
|
|
[]string{"GET"},
|
|
},
|
|
{
|
|
core.CustomCSS,
|
|
staticHandler,
|
|
[]string{"GET"},
|
|
},
|
|
}
|
|
|
|
var routes = []route{
|
|
{
|
|
"/",
|
|
jwtHandler(
|
|
indexHandler),
|
|
[]string{"GET"},
|
|
},
|
|
{
|
|
"/sections",
|
|
jwtHandler(
|
|
sectionsHandler),
|
|
[]string{"GET"},
|
|
},
|
|
{
|
|
"/section/new",
|
|
jwtHandler(
|
|
adminAuthHandler(
|
|
sectionNewHandler)),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
"/section/edit/{section:[a-zA-Z0-9]+$}",
|
|
jwtHandler(
|
|
adminAuthHandler(
|
|
sectionEditHandler)),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
"/section/del/{section:[a-zA-Z0-9]+$}",
|
|
jwtHandler(
|
|
adminAuthHandler(
|
|
sectionDelHandler)),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
"/search",
|
|
jwtHandler(
|
|
searchHandler),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
"/new",
|
|
jwtHandler(
|
|
authHandler(
|
|
pageNewHandler)),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
"/login",
|
|
jwtHandler(
|
|
loginHandler),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
"/totp",
|
|
jwtHandler(
|
|
totpAuthHandler(
|
|
loginTotpHandler)),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
"/blacklist",
|
|
jwtHandler(
|
|
authHandler(
|
|
pageBlacklistHandler)),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
"/users",
|
|
jwtHandler(
|
|
adminAuthHandler(
|
|
usersHandler)),
|
|
[]string{"GET"},
|
|
},
|
|
{
|
|
"/user/new",
|
|
jwtHandler(
|
|
adminAuthHandler(
|
|
userNewHandler)),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
"/user/edit/{user:[a-zA-Z0-9]+$}",
|
|
jwtHandler(
|
|
userAuthHandler(
|
|
userEditHandler)),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
"/user/del/{user:[a-zA-Z0-9]+$}",
|
|
jwtHandler(
|
|
userAuthHandler(
|
|
userDelHandler)),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
"/user/totp/{user:[a-zA-Z0-9]+$}",
|
|
jwtHandler(
|
|
userAuthHandler(
|
|
userTotpHandler)),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
"/user/unlock/{user:[a-zA-Z0-9]+$}",
|
|
jwtHandler(
|
|
adminAuthHandler(
|
|
userUnlockHandler)),
|
|
[]string{"POST"},
|
|
},
|
|
{
|
|
"/logout",
|
|
jwtHandler(
|
|
logoutHandler),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
"/view/{key}",
|
|
jwtHandler(
|
|
pageHandler),
|
|
[]string{"GET"},
|
|
},
|
|
{
|
|
"/view/{key}/md",
|
|
jwtHandler(
|
|
pageMDHandler(
|
|
pageHandler)),
|
|
[]string{"GET"},
|
|
},
|
|
{
|
|
"/{section:[a-zA-Z0-9]+}",
|
|
jwtHandler(
|
|
sectionHandler),
|
|
[]string{"GET"},
|
|
},
|
|
{
|
|
"/{section:[a-zA-Z0-9]+}/{title:[a-zA-Z0-9+-]+}",
|
|
jwtHandler(
|
|
pageHandler),
|
|
[]string{"GET"},
|
|
},
|
|
{
|
|
"/{section:[a-zA-Z0-9]+}/{title:[a-zA-Z0-9+-]+}/md",
|
|
jwtHandler(
|
|
pageMDHandler(
|
|
pageHandler)),
|
|
[]string{"GET"},
|
|
},
|
|
{
|
|
"/{section:[a-zA-Z0-9]+}/{title:[a-zA-Z0-9+-]+}/share",
|
|
jwtHandler(
|
|
pageShareHandler),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
"/{section:[a-zA-Z0-9]+}/{title:[a-zA-Z0-9+-]+}/edit",
|
|
jwtHandler(
|
|
authHandler(
|
|
pageEditHandler)),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
{
|
|
"/{section:[a-zA-Z0-9]+}/{title:[a-zA-Z0-9+-]+}/del",
|
|
jwtHandler(
|
|
authHandler(
|
|
pageDelHandler)),
|
|
[]string{"GET", "POST"},
|
|
},
|
|
}
|