From 01d957677f160e4b5e43ce043b05e246493b34ea Mon Sep 17 00:00:00 2001 From: Willem van Dreumel Date: Wed, 22 Feb 2017 08:14:37 +0100 Subject: Oauth2 consumer (#679) * initial stuff for oauth2 login, fails on: * login button on the signIn page to start the OAuth2 flow and a callback for each provider Only GitHub is implemented for now * show login button only when the OAuth2 consumer is configured (and activated) * create macaron group for oauth2 urls * prevent net/http in modules (other then oauth2) * use a new data sessions oauth2 folder for storing the oauth2 session data * add missing 2FA when this is enabled on the user * add password option for OAuth2 user , for use with git over http and login to the GUI * add tip for registering a GitHub OAuth application * at startup of Gitea register all configured providers and also on adding/deleting of new providers * custom handling of errors in oauth2 request init + show better tip * add ExternalLoginUser model and migration script to add it to database * link a external account to an existing account (still need to handle wrong login and signup) and remove if user is removed * remove the linked external account from the user his settings * if user is unknown we allow him to register a new account or link it to some existing account * sign up with button on signin page (als change OAuth2Provider structure so we can store basic stuff about providers) * from gorilla/sessions docs: "Important Note: If you aren't using gorilla/mux, you need to wrap your handlers with context.ClearHandler as or else you will leak memory!" (we're using gorilla/sessions for storing oauth2 sessions) * use updated goth lib that now supports getting the OAuth2 user if the AccessToken is still valid instead of re-authenticating (prevent flooding the OAuth2 provider) --- templates/admin/auth/edit.tmpl | 26 ++++++++++++++++++++++++++ templates/admin/auth/new.tmpl | 27 +++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) (limited to 'templates/admin/auth') diff --git a/templates/admin/auth/edit.tmpl b/templates/admin/auth/edit.tmpl index 0879b274b1..84b62f6e87 100644 --- a/templates/admin/auth/edit.tmpl +++ b/templates/admin/auth/edit.tmpl @@ -142,6 +142,32 @@ {{end}} + + {{if .Source.IsOAuth2}} + {{ $cfg:=.Source.OAuth2 }} +
+ + +
+
+ + +
+
+ + +
+ {{end}} +
diff --git a/templates/admin/auth/new.tmpl b/templates/admin/auth/new.tmpl index 1edec0cb34..24257a1b65 100644 --- a/templates/admin/auth/new.tmpl +++ b/templates/admin/auth/new.tmpl @@ -133,6 +133,31 @@
+ +
+
+ + +
+
+ + +
+
+ + +
+
+
@@ -170,6 +195,8 @@
GMail Settings:

Host: smtp.gmail.com, Port: 587, Enable TLS Encryption: true

+
OAuth GitHub:
+

{{.i18n.Tr "admin.auths.tip.github"}}

-- cgit v1.2.3