make login page date different depending on auth type

This commit is contained in:
2026-08-04 21:07:07 -04:00
parent ab78dd711f
commit 8a8ebcdeec
5 changed files with 92 additions and 41 deletions
+39 -9
View File
@@ -10,10 +10,28 @@ type LoginPageData struct {
IsHiddenClassList string
LoginData CustomizableLoginData
}
type AuthStyle int
const (
AuthStylePassword AuthStyle = 0
AuthStyleOAuth AuthStyle = 1
)
type AuthData interface{}
type PasswordAuthData struct {
Username string
Password string
}
type OAuthAuthData struct {
Username string
Password string
}
type CustomizableLoginData struct {
ServiceName string
AuthRequestFunction func(string, string) bool
AuthRequestFunction func(AuthStyle, AuthData) bool
}
var LoginPageDataCustomizations CustomizableLoginData
@@ -27,15 +45,27 @@ func loginHandler(w http.ResponseWriter, r *http.Request) {
}
if r.Method == http.MethodPost {
username := r.FormValue("username")
if strings.Contains(username, "/") {
tmpl.Execute(w, LoginPageData{IsHiddenClassList: "", LoginData: LoginPageDataCustomizations})
}
password := r.FormValue("password")
action := r.FormValue("action")
auth_success := LoginPageDataCustomizations.AuthRequestFunction(username, password)
if auth_success == false {
tmpl.Execute(w, LoginPageData{IsHiddenClassList: "", LoginData: LoginPageDataCustomizations})
if action == "password" {
username := r.FormValue("username")
if strings.Contains(username, "/") {
tmpl.Execute(w, LoginPageData{IsHiddenClassList: "", LoginData: LoginPageDataCustomizations})
}
password := r.FormValue("password")
auth_success := LoginPageDataCustomizations.AuthRequestFunction(AuthStylePassword, PasswordAuthData{
Username: username,
Password: password,
})
if auth_success == false {
tmpl.Execute(w, LoginPageData{IsHiddenClassList: "", LoginData: LoginPageDataCustomizations})
}
} else {
auth_success := LoginPageDataCustomizations.AuthRequestFunction(AuthStyleOAuth, OAuthAuthData{})
if auth_success == false {
tmpl.Execute(w, LoginPageData{IsHiddenClassList: "", LoginData: LoginPageDataCustomizations})
}
}
}
}