github.com/covergates/covergates@v0.2.2-0.20201009050117-42ef8a19fb95/modules/login/login.go (about) 1 package login 2 3 import ( 4 "github.com/covergates/covergates/config" 5 "github.com/covergates/covergates/core" 6 "github.com/drone/go-login/login" 7 "github.com/drone/go-login/login/gitea" 8 "github.com/drone/go-login/login/github" 9 "github.com/drone/go-login/login/gitlab" 10 ) 11 12 type middleware struct { 13 config *config.Config 14 } 15 16 // NewMiddleware of login 17 func NewMiddleware(config *config.Config) core.LoginMiddleware { 18 return &middleware{ 19 config: config, 20 } 21 } 22 23 func (m *middleware) Handler(scm core.SCMProvider) login.Middleware { 24 var middleware login.Middleware 25 switch scm { 26 case core.Github: 27 middleware = &github.Config{ 28 ClientID: m.config.Github.ClientID, 29 ClientSecret: m.config.Github.ClientSecret, 30 Server: m.config.Github.Server, 31 Scope: m.config.Github.Scope, 32 Client: BasicClient(m.config.Github.SkipVerity), 33 } 34 case core.Gitea: 35 middleware = &gitea.Config{ 36 ClientID: m.config.Gitea.ClientID, 37 ClientSecret: m.config.Gitea.ClientSecret, 38 Server: m.config.Gitea.Server, 39 Scope: m.config.Gitea.Scope, 40 RedirectURL: m.config.Server.URL() + "/login/gitea", 41 Client: BasicClient(m.config.Gitea.SkipVerity), 42 } 43 case core.GitLab: 44 middleware = &gitlab.Config{ 45 ClientID: m.config.GitLab.ClientID, 46 ClientSecret: m.config.GitLab.ClientSecret, 47 RedirectURL: m.config.Server.URL() + "/login/gitlab", 48 Server: m.config.GitLab.Server, 49 Client: BasicClient(m.config.GitLab.SkipVerity), 50 Scope: m.config.GitLab.Scope, 51 } 52 } 53 return middleware 54 }