master
Joshua Herring 3 weeks ago
parent 147c870dbc
commit 23a9a7aad7

@ -74,8 +74,9 @@ func validate_cas(cas_ticket string) (string, error) {
func getCas(w http.ResponseWriter, r *http.Request){ func getCas(w http.ResponseWriter, r *http.Request){
fail := func() { fail := func(err_message string) {
writeHTML(w, pages.LoginPage("Username or Password is incorrect.")) content := fmt.Sprintf(pages.ErrorPage, err_message)
writeHTML(w, content)
} }
cas_ticket := r.URL.Query().Get("ticket") cas_ticket := r.URL.Query().Get("ticket")
@ -84,54 +85,57 @@ func getCas(w http.ResponseWriter, r *http.Request){
username = strings.ToLower(username) username = strings.ToLower(username)
if e != nil { if e != nil {
err_message := fmt.Sprintf("VALIDATION ERROR: %s\n", e) content := fmt.Sprintf("CAS validation error: %s", e)
w.Write([]byte(err_message)) fail(content)
return return
} else if username == "" { } else if username == "" {
w.Write([]byte("CAS ERROR: user not found")) fail("CAS ERROR - user not found")
return return
} else { } else {
db, err := dbi.GetDbConn() db, err := dbi.GetDbConn()
if err != nil { if err != nil {
fail() fail("Database error")
return return
} }
defer db.Close() defer db.Close()
conn, err := db.Conn(context.Background()) conn, err := db.Conn(context.Background())
if err != nil { if err != nil {
fail() fail("Database error")
return return
} }
defer conn.Close() defer conn.Close()
user, e := dbi.GetUser(conn, username) user, e := dbi.GetUser(conn, username)
if e != nil { if e != nil {
login_error_message := fmt.Sprintf("User error for user %s: %s", e, username) login_error_message := fmt.Sprintf("User error for user %s: %s", username, e)
w.Write([]byte(login_error_message)) fail(login_error_message)
return return
} }
token, err := dbi.GenJWT(user) token, e := dbi.GenJWT(user)
if err != nil { if e != nil {
fail() jwt_error_message := fmt.Sprintf("Login token failure for user %s: %s", username, e)
fail(jwt_error_message)
return return
} }
if user.Status == "admin" { if user.Status == "admin" {
items, err := dbi.GetReportedItems(conn) items, e := dbi.GetReportedItems(conn)
if err != nil { if e != nil {
fail() items_error_message := fmt.Sprintf("Error fetching items: %s", e)
fail(items_error_message)
return return
} }
html, err := pages.DashboardPage(token, items) html, e := pages.DashboardPage(token, items)
if err != nil { if e != nil {
fail() content := fmt.Sprintf("Error loading dashboard: %s", e)
fail(content)
return return
} }
writeHTML(w, html) writeHTML(w, html)
@ -144,7 +148,7 @@ func getCas(w http.ResponseWriter, r *http.Request){
} else { } else {
w.Write([]byte("User has invalid status")) fail("User has invalid status")
return return
} }
@ -249,7 +253,7 @@ func getPortal(w http.ResponseWriter, r *http.Request) {
func main() { func main() {
mux := http.NewServeMux() mux := http.NewServeMux()
mux.HandleFunc("GET /faculty/activity/cas", handleCas) mux.HandleFunc("GET /faculty/activity/cas", getCas)
mux.HandleFunc("GET /faculty/activity/portal", getPortal) mux.HandleFunc("GET /faculty/activity/portal", getPortal)
mux.HandleFunc("GET /faculty/activity/login", handleLoginGet) mux.HandleFunc("GET /faculty/activity/login", handleLoginGet)
mux.HandleFunc("POST /faculty/activity/login", handleLoginPost) mux.HandleFunc("POST /faculty/activity/login", handleLoginPost)

Loading…
Cancel
Save