Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 0 additions & 62 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -445,67 +445,6 @@ render:
Logger.Warnf("Failed to execute the main template: %s", err)
}
}
func serveRemove(w http.ResponseWriter, r *http.Request) {

var data struct {
Message string
User string
}
user, err := getStrFromEncodedPath(r)
if err != nil {
goHome(w, r, "Stale link, please try again")
Logger.Warnf("Failed to get user from req: %s", err)
return
}
data.User = user
if (r.Method != "POST") && (r.Method != "GET") {
http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
return
}
// by copilot
if r.Method == "POST" {
err := r.ParseForm()
if err != nil {
msg := fmt.Sprintf("Got an error parsing form: %s", err)
Logger.Warnf(msg)
http.Error(w, msg, http.StatusBadRequest)
return
}
otp := r.Form.Get("otp")
// validate otp based on user's secret
s, err := db.getUserSecret(data.User)
if err != nil {
msg := fmt.Sprintf("Failed to get user's OTP secret: %s", err)
http.Error(w, msg, http.StatusBadRequest)
Logger.Errorf(msg)
return
}
if s == "" {
http.Error(w, `{"m": "User has no OTP configured"}`, http.StatusUnauthorized)
return
}
if !totp.Validate(otp, s) {
data.Message = "Wrong One Time Password, please try again"

goto render
}
// ....
}

render:
tmpl, err := template.ParseFS(tFS, "templates/remove.tmpl", "templates/base.tmpl")
if err != nil {
msg := fmt.Sprintf("Failed to parse the template: %s", err)
http.Error(w, msg, http.StatusInternalServerError)
return
}
err = tmpl.Execute(w, data)
if err != nil {
msg := fmt.Sprintf("Failed to execute the main template: %s", err)
Logger.Error(msg)
http.Error(w, msg, http.StatusInternalServerError)
}
}

func serveHitMe(w http.ResponseWriter, r *http.Request) {
var data struct {
Expand Down Expand Up @@ -839,7 +778,6 @@ func startHTTPServer(addr string, wg *sync.WaitGroup) *http.Server {
http.HandleFunc("/verify", serveVerify)
http.HandleFunc("/verify/", serveVerifyPeer)
http.HandleFunc("/hitme", serveHitMe)
http.HandleFunc("/remove/", serveRemove)
http.HandleFunc("/authorize/", serveAuthorize)
http.HandleFunc("/ws", serveWs)
// `/turn` is deprecated
Expand Down