Put auth stuff in auth namespace

master
breel 2020-08-27 14:22:34 -06:00
parent e1202cec67
commit a6f5bc3192
7 changed files with 15 additions and 20 deletions

View File

@ -51,7 +51,7 @@ func readRequested(r *http.Request, key string) string {
} }
func getKeyForNamespace(ctx context.Context, g storage.RateLimitedGraph, namespace string) (string, error) { func getKeyForNamespace(ctx context.Context, g storage.RateLimitedGraph, namespace string) (string, error) {
namespaceOne, err := g.Get(ctx, namespace, UserKey) namespaceOne, err := g.Get(ctx, toAuthNamespace(namespace), UserKey)
if err != nil { if err != nil {
return "", err return "", err
} }
@ -71,5 +71,5 @@ func makeTokenForNamespace(ctx context.Context, g storage.RateLimitedGraph, name
ID: token.ID, ID: token.ID,
Title: obf, Title: obf,
} }
return token, g.Insert(ctx, namespace+"."+AuthKey, one) return token, g.Insert(ctx, toAuthNamespace(namespace), one)
} }

View File

@ -27,7 +27,7 @@ func TestGenerate(t *testing.T) {
ID: UserKey, ID: UserKey,
Title: key, Title: key,
} }
if err := g.Insert(context.Background(), namespace, one); err != nil { if err := g.Insert(context.Background(), toAuthNamespace(namespace), one); err != nil {
t.Fatal(err) t.Fatal(err)
} }
r := httptest.NewRequest(http.MethodPost, "/", strings.NewReader(UserKey+`=`+namespace)) r := httptest.NewRequest(http.MethodPost, "/", strings.NewReader(UserKey+`=`+namespace))

View File

@ -3,6 +3,7 @@ package auth
import ( import (
"context" "context"
"errors" "errors"
"fmt"
"local/dndex/storage" "local/dndex/storage"
"local/dndex/storage/entity" "local/dndex/storage/entity"
"net/http" "net/http"
@ -25,10 +26,14 @@ func readRequestedKey(r *http.Request) string {
return readRequested(r, AuthKey) return readRequested(r, AuthKey)
} }
func toAuthNamespace(namespace string) string {
return fmt.Sprintf("%s.%s", namespace, AuthKey)
}
func makeNamespace(ctx context.Context, g storage.RateLimitedGraph, namespace, key string) error { func makeNamespace(ctx context.Context, g storage.RateLimitedGraph, namespace, key string) error {
one := entity.One{ one := entity.One{
ID: UserKey, ID: UserKey,
Title: key, Title: key,
} }
return g.Insert(ctx, namespace, one) return g.Insert(ctx, toAuthNamespace(namespace), one)
} }

View File

@ -43,7 +43,7 @@ func TestRegister(t *testing.T) {
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
one, err := g.Get(context.Background(), namespace, UserKey) one, err := g.Get(context.Background(), toAuthNamespace(namespace), UserKey)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }

View File

@ -47,7 +47,7 @@ func isPublic(token Token, g storage.RateLimitedGraph, r *http.Request) bool {
} }
func isPublicNamespace(ctx context.Context, g storage.RateLimitedGraph, namespace string) bool { func isPublicNamespace(ctx context.Context, g storage.RateLimitedGraph, namespace string) bool {
maybePublicContainer, err := g.Get(ctx, namespace, UserKey) maybePublicContainer, err := g.Get(ctx, toAuthNamespace(namespace), UserKey)
if err != nil { if err != nil {
return false return false
} }
@ -55,7 +55,7 @@ func isPublicNamespace(ctx context.Context, g storage.RateLimitedGraph, namespac
} }
func verifyToken(token Token, g storage.RateLimitedGraph, r *http.Request) error { func verifyToken(token Token, g storage.RateLimitedGraph, r *http.Request) error {
serverTokenContainer, err := g.Get(r.Context(), token.Namespace+"."+AuthKey, token.ID) serverTokenContainer, err := g.Get(r.Context(), toAuthNamespace(token.Namespace), token.ID)
if err != nil { if err != nil {
return err return err
} }

View File

@ -29,7 +29,7 @@ func TestVerify(t *testing.T) {
ID: token.ID, ID: token.ID,
Title: obf, Title: obf,
} }
if err := g.Insert(context.Background(), token.Namespace+"."+AuthKey, one); err != nil { if err := g.Insert(context.Background(), toAuthNamespace(token.Namespace), one); err != nil {
t.Fatal(err) t.Fatal(err)
} }
return g, return g,
@ -119,7 +119,7 @@ func TestVerify(t *testing.T) {
t.Run("public not ok", func(t *testing.T) { t.Run("public not ok", func(t *testing.T) {
g, w, r, _, _ := fresh() g, w, r, _, _ := fresh()
if err := g.Insert(context.Background(), "public", entity.One{ID: UserKey}); err != nil { if err := g.Insert(context.Background(), toAuthNamespace("public"), entity.One{ID: UserKey}); err != nil {
t.Fatal(err) t.Fatal(err)
} }
err := Verify(g, w, r) err := Verify(g, w, r)
@ -130,7 +130,7 @@ func TestVerify(t *testing.T) {
t.Run("public ok", func(t *testing.T) { t.Run("public ok", func(t *testing.T) {
g, w, r, token, _ := fresh() g, w, r, token, _ := fresh()
if err := g.Insert(context.Background(), token.Namespace, entity.One{ID: UserKey}); err != nil { if err := g.Insert(context.Background(), toAuthNamespace(token.Namespace), entity.One{ID: UserKey}); err != nil {
t.Fatal(err) t.Fatal(err)
} }
token.ID = "gibberish-but-public-ns-so-its-ok" token.ID = "gibberish-but-public-ns-so-its-ok"

View File

@ -2,7 +2,6 @@ package server
import ( import (
"encoding/json" "encoding/json"
"local/dndex/server/auth"
"local/dndex/storage/entity" "local/dndex/storage/entity"
"local/dndex/storage/operator" "local/dndex/storage/operator"
"net/http" "net/http"
@ -28,15 +27,6 @@ func (rest *REST) dumpOut(w http.ResponseWriter, r *http.Request) {
if err != nil { if err != nil {
rest.respError(w, err) rest.respError(w, err)
} }
for i := len(entities) - 1; i >= 0; i-- {
if entities[i].ID == auth.UserKey {
if i < len(entities)-1 {
entities = append(entities[:i], entities[i+1:]...)
} else {
entities = entities[:i]
}
}
}
rest.respMap(w, scope.Namespace, entities) rest.respMap(w, scope.Namespace, entities)
} }