From 5a19a697db30c8aeb401637033dda69f5c15de4f Mon Sep 17 00:00:00 2001 From: Umputun Date: Sun, 4 Feb 2018 16:03:52 -0600 Subject: [PATCH] dynamic providers from opts --- app/main.go | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/app/main.go b/app/main.go index 16d80951..4a4c255d 100644 --- a/app/main.go +++ b/app/main.go @@ -95,13 +95,25 @@ func main() { exporter := migrator.Remark{DataStore: dataStore} - authProviders := []auth.Provider{ - auth.NewGoogle(auth.Params{ - Cid: srvOpts.GoogleCID, Csecret: srvOpts.GoogleCSEC, SessionStore: sessionStore, RemarkURL: opts.RemarkURL}), - auth.NewGithub(auth.Params{ - Cid: srvOpts.GithubCID, Csecret: srvOpts.GithubCSEC, SessionStore: sessionStore, RemarkURL: opts.RemarkURL}), - auth.NewFacebook(auth.Params{ - Cid: srvOpts.FacebookCID, Csecret: srvOpts.FacebookCSEC, SessionStore: sessionStore, RemarkURL: opts.RemarkURL}), + authProviders := func() []auth.Provider { + providers := []auth.Provider{} + + if srvOpts.GoogleCID != "" && srvOpts.GoogleCSEC != "" { + providers = append(providers, auth.NewGoogle(auth.Params{ + Cid: srvOpts.GoogleCID, Csecret: srvOpts.GoogleCSEC, SessionStore: sessionStore, RemarkURL: opts.RemarkURL})) + } + if srvOpts.GithubCID != "" && srvOpts.GithubCSEC != "" { + providers = append(providers, auth.NewGithub(auth.Params{ + Cid: srvOpts.GithubCID, Csecret: srvOpts.GithubCSEC, SessionStore: sessionStore, RemarkURL: opts.RemarkURL})) + } + if srvOpts.FacebookCID != "" && srvOpts.FacebookCSEC != "" { + providers = append(providers, auth.NewFacebook(auth.Params{ + Cid: srvOpts.FacebookCID, Csecret: srvOpts.FacebookCSEC, SessionStore: sessionStore, RemarkURL: opts.RemarkURL})) + } + return providers + }() + if len(authProviders) == 0 { + log.Printf("[WARN] no auth providers defined") } srv := rest.Server{