guildgate/web.go

193 lines
3.7 KiB
Go
Raw Normal View History

2020-09-22 14:37:54 -04:00
package main
import (
"log"
"net/http"
)
2020-09-24 16:39:52 -04:00
func profilePage(res http.ResponseWriter, req *http.Request) {
log.Println("GET /profile")
uname := getUserName(req)
if uname == "" {
http.Redirect(res, req, "/", 302)
}
user, err := findLDAPAccountForDisplay(uname)
if err != nil {
log.Printf("Error loading profile: %v\n", err)
http.Error(res, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError)
return
}
data := struct {
Title string
Username string
LoggedIn bool
User User
}{
"Profile",
uname,
true,
user,
}
tpl.ExecuteTemplate(res, "profile", data)
}
2020-09-22 18:21:01 -04:00
func resetPageFront(res http.ResponseWriter, req *http.Request) {
log.Println("GET /passwordreset")
u := getUserName(req)
if u != "" {
http.Redirect(res, req, "/", 302) //TODO create password change form, direct to that
} else {
data := struct {
Title string
Username string
LoggedIn bool
}{
"Reset Password",
"Unregistered",
false,
}
tpl.ExecuteTemplate(res, "reset_password_page_front", data)
}
}
func resetPageBack(res http.ResponseWriter, req *http.Request) {
log.Println("GET /passwordresetform")
u := getUserName(req)
if u != "" {
http.Redirect(res, req, "/", 302) //TODO create password change form, direct to that
} else {
data := struct {
Title string
Username string
LoggedIn bool
}{
"Reset Password",
"Unregistered",
false,
}
tpl.ExecuteTemplate(res, "reset_password_page_back", data)
}
}
func resetSuccessPage(res http.ResponseWriter, req *http.Request) {
log.Println("GET /resetsuccess")
data := struct {
Title string
Username string
LoggedIn bool
}{
"Reset Password Success",
"Unregistered",
false,
}
tpl.ExecuteTemplate(res, "reset_success", data)
return
}
func resetErrorPage(res http.ResponseWriter, req *http.Request) {
log.Println("GET /reseterror")
data := struct {
Title string
Username string
LoggedIn bool
Error string
}{
"Reset Password Failure",
"Unregistered",
false,
"Undefined",
}
tpl.ExecuteTemplate(res, "reset_error", data)
return
}
2020-09-22 14:37:54 -04:00
func signupPage(res http.ResponseWriter, req *http.Request) {
log.Println("GET /register")
u := getUserName(req)
if u != "" {
http.Redirect(res, req, "/", 302)
} else {
data := struct {
Title string
Username string
LoggedIn bool
}{
"Register",
"Unregistered",
false,
}
tpl.ExecuteTemplate(res, "register", data)
}
return
}
func loginPage(res http.ResponseWriter, req *http.Request) {
log.Println("GET /login")
u := getUserName(req)
if u != "" {
http.Redirect(res, req, "/", 302)
} else {
data := struct {
Title string
Username string
LoggedIn bool
}{
"Login",
"Unregistered",
false,
}
tpl.ExecuteTemplate(res, "login", data)
}
return
}
func logoutPage(res http.ResponseWriter, req *http.Request) {
2020-09-22 18:21:01 -04:00
log.Println("GET /logout")
2020-09-22 14:37:54 -04:00
logout(res, req)
tpl.ExecuteTemplate(res, "logout", nil)
return
}
func tokenPage(res http.ResponseWriter, req *http.Request) {
2020-09-22 18:21:01 -04:00
log.Println("GET /token")
2020-09-22 14:37:54 -04:00
u := getUserName(req)
if u == "" {
http.Redirect(res, req, "/", 302)
}
token, err := generateToken(u)
if err != nil {
log.Printf("Error generating token: %v", err)
tpl.ExecuteTemplate(res, "error", nil)
}
data := struct {
Title string
Username string
LoggedIn bool
Token string
}{
"Token Generation",
u,
true,
token,
}
tpl.ExecuteTemplate(res, "token", data)
}
func homePage(res http.ResponseWriter, req *http.Request) {
u := getUserName(req)
active := false
uname := "Unregistered"
if u != "" {
uname = u
active = true
}
data := struct {
Title string
Username string
LoggedIn bool
}{
"Index",
uname,
active,
}
tpl.ExecuteTemplate(res, "index", data)
}