942d494dd699c0ade1c2abc1738fa0e53e0b78e1

Author
Ayman Bagabas <ayman.bagabas@gmail.com>
Committer
GitHub <noreply@github.com>
Date

Message

fix: add ssh commands back (#370)

* fix: add ssh commands back

Unauthorized users would get an error message when using commands that
need authorization

* feat: bump charmbracelet/ssh to fix race issue

Diff

 1diff --git a/go.mod b/go.mod
 2index 1b4fc2479e06800443fd641be396ccfc318d3dab..673f1b132e2959f53c8107fe7838998a434ee3a0 100644
 3--- a/go.mod
 4+++ b/go.mod
 5@@ -24,7 +24,7 @@ require (
 6 	github.com/charmbracelet/git-lfs-transfer v0.1.1-0.20230725143853-5dd0632f9245
 7 	github.com/charmbracelet/keygen v0.4.3
 8 	github.com/charmbracelet/log v0.2.3
 9-	github.com/charmbracelet/ssh v0.0.0-20230720143903-5bdd92839155
10+	github.com/charmbracelet/ssh v0.0.0-20230822194956-1a051f898e09
11 	github.com/go-jose/go-jose/v3 v3.0.0
12 	github.com/gobwas/glob v0.2.3
13 	github.com/gogs/git-module v1.8.2
14diff --git a/go.sum b/go.sum
15index 9a44f257d9c681b35cced7eb261999fe57a89d6f..94541c2b39b2dee144ccfa5f8c85b0fb23c4a95c 100644
16--- a/go.sum
17+++ b/go.sum
18@@ -37,6 +37,8 @@ github.com/charmbracelet/log v0.2.3 h1:YVmBhJtpGL7nW/nlf5u+SEloU8XYljxozGzZpgwIv
19 github.com/charmbracelet/log v0.2.3/go.mod h1:ZApwwzDbbETVTIRTk7724yQRJAXIktt98yGVMMaa3y8=
20 github.com/charmbracelet/ssh v0.0.0-20230720143903-5bdd92839155 h1:vJqYhlL0doAWQPz+EX/hK5x/ZYguoua773oRz77zYKo=
21 github.com/charmbracelet/ssh v0.0.0-20230720143903-5bdd92839155/go.mod h1:F1vgddWsb/Yr/OZilFeRZEh5sE/qU0Dt1mKkmke6Zvg=
22+github.com/charmbracelet/ssh v0.0.0-20230822194956-1a051f898e09 h1:ZDIQmTtohv0S/AAYE//w8mYTxCzqphhF1+4ACPDMiLU=
23+github.com/charmbracelet/ssh v0.0.0-20230822194956-1a051f898e09/go.mod h1:F1vgddWsb/Yr/OZilFeRZEh5sE/qU0Dt1mKkmke6Zvg=
24 github.com/charmbracelet/wish v1.1.1 h1:KdICASKd2oh2JPvk1Z4CJtAi97cFErXF7NKienPICO4=
25 github.com/charmbracelet/wish v1.1.1/go.mod h1:xh4KZpSULw+Xqb9bcbhw92QAinVB75CVLWrFuyY6IVs=
26 github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 h1:q2hJAaP1k2wIvVRd/hEHD7lacgqrCPS+k8g1MndzfWY=
27diff --git a/server/ssh/middleware.go b/server/ssh/middleware.go
28index 9a387f49b50f6d3f206a201d6b81905953275c30..300dd3798b2b71670dd2e036b0908b400b02a70f 100644
29--- a/server/ssh/middleware.go
30+++ b/server/ssh/middleware.go
31@@ -68,6 +68,13 @@ func CommandMiddleware(sh ssh.Handler) ssh.Handler {
32 				cmd.GitUploadArchiveCommand(),
33 				cmd.GitReceivePackCommand(),
34 				cmd.RepoCommand(),
35+				cmd.SettingsCommand(),
36+				cmd.UserCommand(),
37+				cmd.InfoCommand(),
38+				cmd.PubkeyCommand(),
39+				cmd.SetUsernameCommand(),
40+				cmd.JWTCommand(),
41+				cmd.TokenCommand(),
42 			)
43 
44 			if cfg.LFS.Enabled {
45@@ -92,25 +99,6 @@ func CommandMiddleware(sh ssh.Handler) ssh.Handler {
46 			rootCmd.SetErr(s.Stderr())
47 			rootCmd.SetContext(ctx)
48 
49-			user := proto.UserFromContext(ctx)
50-			isAdmin := cmd.IsPublicKeyAdmin(cfg, s.PublicKey()) || (user != nil && user.IsAdmin())
51-			if user != nil || isAdmin {
52-				if isAdmin {
53-					rootCmd.AddCommand(
54-						cmd.SettingsCommand(),
55-						cmd.UserCommand(),
56-					)
57-				}
58-
59-				rootCmd.AddCommand(
60-					cmd.InfoCommand(),
61-					cmd.PubkeyCommand(),
62-					cmd.SetUsernameCommand(),
63-					cmd.JWTCommand(),
64-					cmd.TokenCommand(),
65-				)
66-			}
67-
68 			if err := rootCmd.ExecuteContext(ctx); err != nil {
69 				s.Exit(1) // nolint: errcheck
70 				return