summaryrefslogtreecommitdiffhomepage
path: root/derelict.go
diff options
context:
space:
mode:
Diffstat (limited to 'derelict.go')
-rw-r--r--derelict.go17
1 files changed, 5 insertions, 12 deletions
diff --git a/derelict.go b/derelict.go
index d084e49..d72bfb8 100644
--- a/derelict.go
+++ b/derelict.go
@@ -8,7 +8,6 @@ import (
"log"
"net/http"
"os"
- "regexp"
"github.com/gorilla/mux"
)
@@ -20,9 +19,8 @@ var content embed.FS
var internal embed.FS
var (
- storage Storage
- templates *template.Template
- validToken = regexp.MustCompile(`[a-fA-F0-9]+`)
+ storage Storage
+ templates *template.Template
)
func main() {
@@ -50,20 +48,15 @@ func main() {
}
func handleBattlesPost(w http.ResponseWriter, r *http.Request) {
- token := r.Header.Get("Derelict-Token")
- if !validToken.MatchString(token) {
+ authorized, err := storage.CanPost(r.Header.Get("Derelict-Token"))
+ if err != nil {
http.Error(w, "Invalid token", http.StatusBadRequest)
return
}
- _, err := os.Stat(storage.Path + "/tokens/" + token)
- if _, ok := err.(*os.PathError); ok {
+ if !authorized {
http.Error(w, "Unauthorized", http.StatusUnauthorized)
return
}
- if err != nil {
- http.Error(w, "Unexpected error 1", http.StatusInternalServerError)
- return
- }
var wrecks []Wreck
data, err := ioutil.ReadAll(r.Body)
if err != nil {