prep admin to support multiple keys, per aud (siteID)

This commit is contained in:
Umputun
2021-02-15 13:14:23 -06:00
parent a50adc823b
commit 807160dcf6
11 changed files with 22 additions and 17 deletions
@@ -35,7 +35,7 @@ func NewMemAdminStore(key string) *MemAdmin {
}
// Key executes find by siteID and returns substructure with secret key
func (m *MemAdmin) Key() (key string, err error) {
func (m *MemAdmin) Key(_ string) (key string, err error) {
return m.key, nil
}
@@ -31,7 +31,7 @@ func TestMemAdmin_Get(t *testing.T) {
email, err := ms.Email("site1")
assert.NoError(t, err)
assert.Equal(t, "e1", email)
key, err := ms.Key()
key, err := ms.Key("any")
assert.NoError(t, err)
assert.Equal(t, "secret", key)
@@ -41,7 +41,7 @@ func TestMemAdmin_Get(t *testing.T) {
email, err = ms.Email("site2")
assert.NoError(t, err)
assert.Equal(t, "e2", email)
key, err = ms.Key()
key, err = ms.Key("any")
assert.NoError(t, err)
assert.Equal(t, "secret", key)
@@ -15,8 +15,13 @@ import (
)
// get admin key
func (s *RPC) admKeyHndl(id uint64, _ json.RawMessage) (rr jrpc.Response) {
key, err := s.adm.Key()
func (s *RPC) admKeyHndl(id uint64, params json.RawMessage) (rr jrpc.Response) {
var siteID string
if err := json.Unmarshal(params, &siteID); err != nil {
return jrpc.Response{Error: err.Error()}
}
key, err := s.adm.Key(siteID)
if err != nil {
return jrpc.Response{Error: err.Error()}
}
@@ -24,7 +24,7 @@ func TestRPC_admKeyHndl(t *testing.T) {
api := fmt.Sprintf("http://localhost:%d/test", port)
ra := admin.RPC{Client: jrpc.Client{API: api, Client: http.Client{Timeout: 1 * time.Second}}}
key, err := ra.Key()
key, err := ra.Key("any")
assert.NoError(t, err)
assert.Equal(t, "secret", key)
}