From 5d177f53752b4abef76e37655425e9b855efd19b Mon Sep 17 00:00:00 2001 From: Ayman Bagabas Date: Tue, 25 Apr 2023 16:58:44 -0400 Subject: [PATCH] fix(server): InitialAdminKeys config name --- server/backend/sqlite/user.go | 6 +++--- server/config/config.go | 2 +- server/config/file.go | 3 +++ 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/server/backend/sqlite/user.go b/server/backend/sqlite/user.go index 86d36ac1e84d443910e7a5dfe0714f57f416777d..1afa8085fcac43779cba4dbdc3e2657aa185bde6 100644 --- a/server/backend/sqlite/user.go +++ b/server/backend/sqlite/user.go @@ -118,12 +118,12 @@ func (d *SqliteBackend) AccessLevel(repo string, username string) backend.Access // // It implements backend.Backend. func (d *SqliteBackend) AccessLevelByPublicKey(repo string, pk ssh.PublicKey) backend.AccessLevel { - ak := backend.MarshalAuthorizedKey(pk) - if strings.HasPrefix(d.cfg.InternalPublicKey, ak) { + if ik, _, err := backend.ParseAuthorizedKey(d.cfg.InternalPublicKey); err == nil && backend.KeysEqual(ik, pk) { return backend.AdminAccess } for _, k := range d.cfg.InitialAdminKeys { - if k == ak { + ik, _, err := backend.ParseAuthorizedKey(k) + if err == nil && backend.KeysEqual(pk, ik) { return backend.AdminAccess } } diff --git a/server/config/config.go b/server/config/config.go index 1418e4b8b938d976d22caa7a33d81647d110a758..b72dae3c31e91ac3dcef59ee84fd97db2cab789e 100644 --- a/server/config/config.go +++ b/server/config/config.go @@ -89,7 +89,7 @@ type Config struct { Stats StatsConfig `envPrefix:"STATS_" yaml:"stats"` // InitialAdminKeys is a list of public keys that will be added to the list of admins. - InitialAdminKeys []string `env:"INITIAL_ADMIN_KEY" envSeparator:"\n" yaml:"initial_admin_keys"` + InitialAdminKeys []string `env:"INITIAL_ADMIN_KEYS" envSeparator:"\n" yaml:"initial_admin_keys"` // DataPath is the path to the directory where Soft Serve will store its data. DataPath string `env:"DATA_PATH" yaml:"-"` diff --git a/server/config/file.go b/server/config/file.go index 7ee81d5293d91ef32c9acdb989c5c3f31047d10d..d436e14b1022bcfa339aab8194f6b32e6f2957a4 100644 --- a/server/config/file.go +++ b/server/config/file.go @@ -75,6 +75,9 @@ stats: # The address on which the stats server will listen. listen_addr: "{{ .Stats.ListenAddr }}" +# Additional admin keys. +#initial_admin_keys: +# - "ssh-rsa AAAAB3NzaC1yc2..." `)) )