From 4a5c387bb045cb2285cc090a069509330cc7ec68 Mon Sep 17 00:00:00 2001 From: Ayman Bagabas Date: Wed, 15 Jun 2022 12:34:09 -0400 Subject: [PATCH] fix: respect private repos only display private repos for users with read access Fixes: https://github.com/charmbracelet/soft-serve/issues/81 --- go.mod | 4 ++-- go.sum | 6 ++++-- internal/tui/commands.go | 3 +++ server/middleware.go | 5 ++--- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index b5b61ba8467e815e10ddc4f04ea1beeda441c675..56ee0a66a19687cbdb20baa78979fee5b653e147 100755 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/charmbracelet/lipgloss v0.4.0 github.com/charmbracelet/wish v0.3.1 github.com/dustin/go-humanize v1.0.0 - github.com/gliderlabs/ssh v0.3.3 + github.com/gliderlabs/ssh v0.3.4 github.com/go-git/go-billy/v5 v5.3.1 github.com/go-git/go-git/v5 v5.4.3-0.20210630082519-b4368b2a2ca4 github.com/matryer/is v1.4.0 @@ -39,7 +39,7 @@ require ( github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be // indirect github.com/atotto/clipboard v0.1.4 // indirect github.com/aymerick/douceur v0.2.0 // indirect - github.com/caarlos0/sshmarshal v0.0.0-20220308164159-9ddb9f83c6b3 // indirect + github.com/caarlos0/sshmarshal v0.1.0 // indirect github.com/containerd/console v1.0.3 // indirect github.com/dlclark/regexp2 v1.4.0 // indirect github.com/emirpasic/gods v1.12.0 // indirect diff --git a/go.sum b/go.sum index f7bcd5cc562374a802e4bddd7bc1101ce0d85ff5..dac9b4f3d7cb663548e080e7778f1ac597ab0d49 100644 --- a/go.sum +++ b/go.sum @@ -21,8 +21,9 @@ github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuP github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4= github.com/caarlos0/env/v6 v6.9.1 h1:zOkkjM0F6ltnQ5eBX6IPI41UP/KDGEK7rRPwGCNos8k= github.com/caarlos0/env/v6 v6.9.1/go.mod h1:hvp/ryKXKipEkcuYjs9mI4bBCg+UI0Yhgm5Zu0ddvwc= -github.com/caarlos0/sshmarshal v0.0.0-20220308164159-9ddb9f83c6b3 h1:w2ANoiT4ubmh4Nssa3/QW1M7lj3FZkma8f8V5aBDxXM= github.com/caarlos0/sshmarshal v0.0.0-20220308164159-9ddb9f83c6b3/go.mod h1:7Pd/0mmq9x/JCzKauogNjSQEhivBclCQHfr9dlpDIyA= +github.com/caarlos0/sshmarshal v0.1.0 h1:zTCZrDORFfWh526Tsb7vCm3+Yg/SfW/Ub8aQDeosk0I= +github.com/caarlos0/sshmarshal v0.1.0/go.mod h1:7Pd/0mmq9x/JCzKauogNjSQEhivBclCQHfr9dlpDIyA= github.com/charmbracelet/bubbles v0.10.4-0.20220302223835-88562515cf7b h1:o+LFpRn1fXtu1hDJLtBFjp7tMZ8AqwSpl84w1TnUj0Y= github.com/charmbracelet/bubbles v0.10.4-0.20220302223835-88562515cf7b/go.mod h1:jOA+DUF1rjZm7gZHcNyIVW+YrBPALKfpGVdJu8UiJsA= github.com/charmbracelet/bubbletea v0.19.3/go.mod h1:VuXF2pToRxDUHcBUcPmCRUHRvFATM4Ckb/ql1rBl3KA= @@ -53,8 +54,9 @@ github.com/emirpasic/gods v1.12.0 h1:QAUIPSaCu4G+POclxeqb3F+WPpdKqFGlw36+yOzGlrg github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= -github.com/gliderlabs/ssh v0.3.3 h1:mBQ8NiOgDkINJrZtoizkC3nDNYgSaWtxyem6S2XHBtA= github.com/gliderlabs/ssh v0.3.3/go.mod h1:ZSS+CUoKHDrqVakTfTWUlKSr9MtMFkC4UvtQKD7O914= +github.com/gliderlabs/ssh v0.3.4 h1:+AXBtim7MTKaLVPgvE+3mhewYRawNLTd+jEEz/wExZw= +github.com/gliderlabs/ssh v0.3.4/go.mod h1:ZSS+CUoKHDrqVakTfTWUlKSr9MtMFkC4UvtQKD7O914= github.com/go-git/gcfg v1.5.0 h1:Q5ViNfGF8zFgyJWPqYwA7qGFoMTEiBmdlkcfRmpIMa4= github.com/go-git/gcfg v1.5.0/go.mod h1:5m20vg6GwYabIxaOonVkTdrILxQMpEShl1xiMF4ua+E= github.com/go-git/go-billy/v5 v5.2.0/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0= diff --git a/internal/tui/commands.go b/internal/tui/commands.go index 64c1ff4851dc3ec81f41babc2a758be065b600d3..5be3c9d17de291b7063d87290732a3710a721c19 100644 --- a/internal/tui/commands.go +++ b/internal/tui/commands.go @@ -65,6 +65,9 @@ func (b *Bubble) menuEntriesFromSource() ([]MenuEntry, error) { if acc == gm.NoAccess && cr.Repo != "config" { continue } + if cr.Private && acc < gm.ReadOnlyAccess { + continue + } me, err := b.newMenuEntry(cr.Name, cr.Repo) if err != nil { return nil, err diff --git a/server/middleware.go b/server/middleware.go index c45cfad4f61af95b5237d69b62547c8150911fec..7a6bc3674fc476865dc0ee21da5d600d9e067ee7 100644 --- a/server/middleware.go +++ b/server/middleware.go @@ -19,9 +19,8 @@ func softMiddleware(ac *appCfg.Config) wish.Middleware { if active { return } - ctx := s.Context() - ctx = context.WithValue(ctx, "config", ac) //nolint:revive - ctx = context.WithValue(ctx, "session", s) //nolint:revive + ctx := context.WithValue(s.Context(), "config", ac) //nolint:revive + ctx = context.WithValue(ctx, "session", s) //nolint:revive use := "ssh" port := ac.Port