fix(server): InitialAdminKeys config name

Ayman Bagabas created

Change summary

server/backend/sqlite/user.go | 6 +++---
server/config/config.go       | 2 +-
server/config/file.go         | 3 +++
3 files changed, 7 insertions(+), 4 deletions(-)

Detailed changes

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
 		}
 	}

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:"-"`

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..."
 `))
 )