summaryrefslogtreecommitdiffhomepage
path: root/derelict.go
diff options
context:
space:
mode:
authorAki <please@ignore.pl>2021-04-24 03:22:22 +0200
committerAki <please@ignore.pl>2021-04-24 03:22:22 +0200
commit60a2f794f1e04f9cc106d0df555d35c14afb3082 (patch)
tree7c8ede70f52a6ba009c71b6c2c4224254cb7810e /derelict.go
parentd6226a4a928a386a29e173f7516e3c3d09681dc0 (diff)
downloadfield-60a2f794f1e04f9cc106d0df555d35c14afb3082.zip
field-60a2f794f1e04f9cc106d0df555d35c14afb3082.tar.gz
field-60a2f794f1e04f9cc106d0df555d35c14afb3082.tar.bz2
Moved token handling to storage
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 {