package scsusers import ( "embed" "html/template" "log" ) //go:embed templates/*.html var FS embed.FS func SetTemplate(name, t string) bool { if len(t) != 0 { r, err := template.New(name).Parse(t) if err != nil { log.Printf("scsusers.SetTemplate: Template %s failed to compile: %s\n", name, err.Error()) return true } switch name { case "registration": c.Templates.Registration = r case "alert": c.Templates.Alert = r case "recovery": c.Templates.Recovery = r case "2fa": c.Templates.TwoFA = r } return false } r, err := template.New(name).Parse(t) if err != nil { log.Printf("scsusers.SetTemplate: Default %s template MUST compile. Error: %s\n", name, err.Error()) return false } switch name { case "registration": c.Templates.Registration = r case "alert": c.Templates.Alert = r case "recovery": c.Templates.Recovery = r case "2fa": c.Templates.TwoFA = r } return false } func SetRegistrationTemplate(t string) bool { if len(t) != 0 { r, err := template.New("registration").Parse(t) if err != nil { c.Templates.Registration = r return true } } df, err := FS.ReadFile("templates/registration.html") if err != nil { log.Fatal("Missing recovery template") } r, err := template.New("registration").Parse(string(df)) if err != nil { log.Fatal("scsusers.SetRegistrationTemplate: Default registration template MUST compile. Error: " + err.Error()) } c.Templates.Registration = r return false } func Set2faTemplate(t string) bool { if len(t) != 0 { r, err := template.New("2fa").Parse(t) if err != nil { c.Templates.TwoFA = r return true } } df, err := FS.ReadFile("templates/2fa.html") if err != nil { log.Fatal("Missing 2fa template") } r, err := template.New("2fa").Parse(string(df)) if err != nil { log.Fatal("scsusers.Set2faTemplate: Default 2fa template MUST compile. Error: " + err.Error()) } c.Templates.TwoFA = r return false } func SetAlertTemplate(t string) bool { if len(t) != 0 { r, err := template.New("alert").Parse(t) if err != nil { c.Templates.Alert = r return true } } df, err := FS.ReadFile("templates/alert.html") if err != nil { log.Fatal("Missing recovery template") } r, err := template.New("alert").Parse(string(df)) if err != nil { log.Fatal("scsusers.SetAlertTemplate: Default alert template MUST compile. Error: " + err.Error()) } c.Templates.Alert = r return false } func SetRecoveryTemplate(t string) bool { if len(t) != 0 { r, err := template.New("recovery").Parse(t) if err != nil { c.Templates.Recovery = r return true } } df, err := FS.ReadFile("templates/recovery.html") if err != nil { log.Fatal("Missing recovery template") } r, err := template.New("recovery").Parse(string(df)) if err != nil { log.Fatal("scsusers.SetRecoveryTemplate: Default recovery template MUST compile. Error: " + err.Error()) } c.Templates.Recovery = r return false }