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

Loading…
Cancel
Save