Files
2026-07-27 19:31:43 +08:00

82 lines
2.1 KiB
Go

package api
import (
"net/http"
"litepan/internal/adminauth"
)
func (h *Handler) authStatus(w http.ResponseWriter, r *http.Request) {
writeOK(w, h.adminAuth.Status(r.Context(), r))
}
func (h *Handler) authLogin(w http.ResponseWriter, r *http.Request) {
if err := r.ParseForm(); err != nil {
writeErr(w, err)
return
}
result, err := h.adminAuth.Login(
r.Context(),
r,
w,
r.FormValue("username"),
r.FormValue("password"),
r.FormValue("remember") == "1",
)
if err != nil {
writeErr(w, err)
return
}
writeOK(w, result)
}
func (h *Handler) authLogout(w http.ResponseWriter, _ *http.Request) {
h.adminAuth.ClearSession(w)
writeOK(w, map[string]any{})
}
func (h *Handler) authResetPassword(w http.ResponseWriter, r *http.Request) {
data, err := h.adminAuth.ResetPassword(r.Context(), r)
if err != nil {
writeErr(w, err)
return
}
msg := "已生成临时密码,请查看容器控制台日志获取临时密码。"
if reused, _ := data["reused"].(bool); reused {
msg = "临时密码仍在有效期内,请查看容器日志获取临时密码。"
}
writeJSON(w, http.StatusOK, Resp{Success: true, Data: data, Message: msg})
}
func (h *Handler) adminSystemConfig(w http.ResponseWriter, r *http.Request) {
writeOK(w, h.adminAuth.SystemConfig(r.Context()))
}
func (h *Handler) adminUpdateCredentials(w http.ResponseWriter, r *http.Request) {
var req adminauth.UpdateCredentialsRequest
if err := decodeJSON(r, &req); err != nil {
writeErr(w, err)
return
}
sess := adminSessionFromContext(r.Context())
if err := h.adminAuth.UpdateCredentials(r.Context(), r, w, req, sess); err != nil {
writeErr(w, err)
return
}
h.applyUploadConcurrencyHotReload(r.Context(), req.UploadTaskConcurrency)
writeOK(w, map[string]any{})
}
func (h *Handler) adminWebDAVConfig(w http.ResponseWriter, r *http.Request) {
var req adminauth.WebDAVConfigRequest
if err := decodeJSON(r, &req); err != nil {
writeErr(w, err)
return
}
if err := h.adminAuth.UpdateWebDAVConfig(r.Context(), req); err != nil {
writeErr(w, err)
return
}
writeOK(w, map[string]any{})
}