41 lines
1.4 KiB
Go
41 lines
1.4 KiB
Go
package handlers
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"amnezia-share/internal/models"
|
|
"amnezia-share/internal/web"
|
|
)
|
|
|
|
func registerAdmin(a *web.App, mux *http.ServeMux) {
|
|
mux.HandleFunc("GET /admin", a.RequireAdmin(AdminIndex(a)))
|
|
|
|
mux.HandleFunc("GET /admin/links", a.RequireAdmin(AdminLinksGet(a)))
|
|
mux.HandleFunc("POST /admin/links", a.RequireAdmin(a.CSRFProtect(AdminLinksPost(a))))
|
|
|
|
mux.HandleFunc("GET /admin/renewal", a.RequireAdmin(AdminRenewalGet(a)))
|
|
mux.HandleFunc("POST /admin/renewal", a.RequireAdmin(a.CSRFProtect(AdminRenewalPost(a))))
|
|
|
|
mux.HandleFunc("GET /admin/configs", a.RequireAdmin(AdminConfigsGet(a)))
|
|
mux.HandleFunc("POST /admin/configs", a.RequireAdmin(a.CSRFProtect(AdminConfigsPost(a))))
|
|
|
|
mux.HandleFunc("GET /admin/servers", a.RequireAdmin(AdminServersGet(a)))
|
|
mux.HandleFunc("POST /admin/servers", a.RequireAdmin(a.CSRFProtect(AdminServersPost(a))))
|
|
|
|
mux.HandleFunc("GET /admin/settings", a.RequireAdmin(AdminSettingsGet(a)))
|
|
mux.HandleFunc("POST /admin/settings", a.RequireAdmin(a.CSRFProtect(AdminSettingsPost(a))))
|
|
}
|
|
|
|
// adminLayout carries the data every admin page template needs for the shared
|
|
// cyber-dark shell (sidebar, topbar, flash banners).
|
|
type adminLayout struct {
|
|
Admin *models.User
|
|
Active string
|
|
OK string
|
|
Error string
|
|
}
|
|
|
|
func newAdminLayout(a *web.App, r *http.Request, active string) adminLayout {
|
|
return adminLayout{Admin: a.CurrentAdmin(r), Active: active}
|
|
}
|