func AuthenticateUser(db *gorm.DB) martini.Handler { return func(res http.ResponseWriter, req *http.Request, c martini.Context) { token := req.Header.Get(ApiTokenHeaderKey) var authUser models.AuthUser if token != "" { var err error authUser.User, err = models.GetUserByToken(db, token) if err == nil { authUser.SetAuthenticated(true) } else if err != gorm.RecordNotFound { utils.HttpError(res, http.StatusInternalServerError) } } c.Map(authUser) } }