diff options
Diffstat (limited to 'pkg/handler/git/handler.go')
| -rw-r--r-- | pkg/handler/git/handler.go | 13 | 
1 files changed, 13 insertions, 0 deletions
| diff --git a/pkg/handler/git/handler.go b/pkg/handler/git/handler.go index 4276159..6225b1a 100644 --- a/pkg/handler/git/handler.go +++ b/pkg/handler/git/handler.go @@ -13,6 +13,7 @@ import (  	"git.gabrielgio.me/cerrado/pkg/ext"  	"git.gabrielgio.me/cerrado/pkg/service" +	"git.gabrielgio.me/cerrado/pkg/u"  	"git.gabrielgio.me/cerrado/templates"  	"github.com/alecthomas/chroma/v2"  	"github.com/alecthomas/chroma/v2/formatters/html" @@ -44,11 +45,19 @@ func NewGitHandler(gitService *service.GitService, confRepo configurationReposit  }  func (g *GitHandler) List(w http.ResponseWriter, r *http.Request) error { +	// this is the only handler that needs to handle authentication itself. +	// everything else relay on name path parameter +	logged := ext.IsLoggedIn(r.Context()) +  	repos, err := g.gitService.ListRepositories()  	if err != nil {  		return err  	} +	if !logged { +		repos = u.Filter(repos, isPublic) +	} +  	f, err := os.Open(g.config.GetRootReadme())  	if err != nil {  		return err @@ -375,3 +384,7 @@ func GetLexers(filename string) chroma.Lexer {  	}  	return lexer  } + +func isPublic(r *service.Repository) bool { +	return r.Public +} | 
