func LoginHandler(w http.ResponseWriter, r *http.Request) { c := communicator.New(w) username := r.FormValue("username") password := r.FormValue("password") u, err := models.GetUser("username", username) if err != nil { c.Fail("Unable to find that user") return } ok, err := u.Login(password) if err != nil { c.Fail("Authentication error") } if !ok { c.Fail("That was not a matching password") return } claims := make(map[string]interface{}) claims["id"] = u.ID claims["exp"] = time.Now().Add(time.Hour * 72).Unix() ts, err := restrict.Token(claims) if err != nil { c.Fail("Failure signing that token!") return } c.OKWithData("Successfully logged in that user", ts) }
func GetUserHandler(w http.ResponseWriter, r *http.Request) { c := communicator.New(w) username := r.FormValue("username") sid := r.FormValue("id") if sid != "" { var id int64 fmt.Sscanf(sid, "%d", &id) fmt.Println(id) u, err := models.GetUserByID(id) if err != nil { c.Fail("Error getting user") return } c.OKWithData("Here is your user: "******"" { u, err := models.GetUser("username", username) if err != nil { c.Fail("Could not get that username") return } c.OKWithData("Here is your user: "******"hello?") c := communicator.New(w) fid, ok := t.Claims["id"].(float64) if !ok { c.Fail("Could not get that ID") return } id := int64(fid) u, err := models.GetUserByID(id) if err != nil { c.Fail("Error getting user") return } c.OKWithData("Here is your user", u) })(w, r) }
func AddUserToClassHandler(w http.ResponseWriter, r *http.Request, t *jwt.Token) { c := communicator.New(w) vars := mux.Vars(r) u, err := getUserFromToken(t) if err != nil { c.Fail("COuld not get user from supplied token") return } username := r.FormValue("user") inv, err := models.GetUser("username", username) if err != nil { c.Fail("Could not get user") return } s, class, err := getClassFromString(u, vars["class_id"]) if err != nil { c.Fail("Could not get class") return } if !s.IsAdmin() { c.Fail("User is not admin") return } _, err = class.Invite(inv) if err != nil { c.Fail("Error inviting user") return } c.OK("Invited user") }