diff options
author | Dmitry Sharshakov <d3dx12.xx@gmail.com> | 2023-09-13 08:14:21 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-13 05:14:21 +0000 |
commit | 63b53af933d748f9b4e0f1273e3701b4c3d08ac3 (patch) | |
tree | bfb8a2b0b642fb065783e7b721dcb2c2a4c7d92f | |
parent | cda97a725347cdadd43af812749732b9d1ee6429 (diff) | |
download | gitea-63b53af933d748f9b4e0f1273e3701b4c3d08ac3.tar.gz gitea-63b53af933d748f9b4e0f1273e3701b4c3d08ac3.zip |
Show OpenID Connect and OAuth on signup page (#20242)
Fix #19809
---------
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
Co-authored-by: jackHay22 <jack@allspice.io>
-rw-r--r-- | routers/web/auth/auth.go | 18 | ||||
-rw-r--r-- | templates/user/auth/signin_navbar.tmpl | 3 | ||||
-rw-r--r-- | templates/user/auth/signup.tmpl | 1 | ||||
-rw-r--r-- | templates/user/auth/signup_inner.tmpl | 19 |
4 files changed, 41 insertions, 0 deletions
diff --git a/routers/web/auth/auth.go b/routers/web/auth/auth.go index c20a45ebc9..dac8eb7afb 100644 --- a/routers/web/auth/auth.go +++ b/routers/web/auth/auth.go @@ -392,7 +392,16 @@ func SignUp(ctx *context.Context) { ctx.Data["SignUpLink"] = setting.AppSubURL + "/user/sign_up" + orderedOAuth2Names, oauth2Providers, err := oauth2.GetActiveOAuth2Providers() + if err != nil { + ctx.ServerError("UserSignUp", err) + return + } + + ctx.Data["OrderedOAuth2Names"] = orderedOAuth2Names + ctx.Data["OAuth2Providers"] = oauth2Providers context.SetCaptchaData(ctx) + ctx.Data["PageIsSignUp"] = true // Show Disabled Registration message if DisableRegistration or AllowOnlyExternalRegistration options are true @@ -413,7 +422,16 @@ func SignUpPost(ctx *context.Context) { ctx.Data["SignUpLink"] = setting.AppSubURL + "/user/sign_up" + orderedOAuth2Names, oauth2Providers, err := oauth2.GetActiveOAuth2Providers() + if err != nil { + ctx.ServerError("UserSignUp", err) + return + } + + ctx.Data["OrderedOAuth2Names"] = orderedOAuth2Names + ctx.Data["OAuth2Providers"] = oauth2Providers context.SetCaptchaData(ctx) + ctx.Data["PageIsSignUp"] = true // Permission denied if DisableRegistration or AllowOnlyExternalRegistration options are true diff --git a/templates/user/auth/signin_navbar.tmpl b/templates/user/auth/signin_navbar.tmpl index 40f34cc01b..84574aa2c2 100644 --- a/templates/user/auth/signin_navbar.tmpl +++ b/templates/user/auth/signin_navbar.tmpl @@ -4,6 +4,9 @@ <a class="{{if .PageIsLogin}}active {{end}}item" rel="nofollow" href="{{AppSubUrl}}/user/login"> {{.locale.Tr "auth.login_userpass"}} </a> + <a class="{{if .PageIsSignUp}}active{{end}} item" rel="nofollow" href="{{AppSubUrl}}/user/sign_up"> + {{.locale.Tr "auth.create_new_account"}} + </a> {{if .EnableOpenIDSignIn}} <a class="{{if .PageIsLoginOpenID}}active {{end}}item" rel="nofollow" href="{{AppSubUrl}}/user/login/openid"> {{svg "fontawesome-openid"}} diff --git a/templates/user/auth/signup.tmpl b/templates/user/auth/signup.tmpl index 1d03f610dc..f238413ce2 100644 --- a/templates/user/auth/signup.tmpl +++ b/templates/user/auth/signup.tmpl @@ -1,5 +1,6 @@ {{template "base/head" .}} <div role="main" aria-label="{{.Title}}" class="page-content user signin{{if .LinkAccountMode}} icon{{end}}"> + {{template "user/auth/signin_navbar" .}} <div class="ui middle very relaxed page grid"> {{template "user/auth/signup_inner" .}} </div> diff --git a/templates/user/auth/signup_inner.tmpl b/templates/user/auth/signup_inner.tmpl index 8dfcb7b7d0..184b8b88fe 100644 --- a/templates/user/auth/signup_inner.tmpl +++ b/templates/user/auth/signup_inner.tmpl @@ -55,6 +55,25 @@ </div> {{end}} {{end}} + + {{if and .OrderedOAuth2Names .OAuth2Providers}} + <div class="divider divider-text"> + {{.locale.Tr "sign_in_or"}} + </div> + <div id="oauth2-login-navigator" class="gt-py-2"> + <div class="gt-df gt-fc gt-jc"> + <div id="oauth2-login-navigator-inner" class="gt-df gt-fc gt-fw gt-ac gt-gap-3"> + {{range $key := .OrderedOAuth2Names}} + {{$provider := index $.OAuth2Providers $key}} + <a class="{{$provider.Name}} ui button gt-df gt-ac gt-jc gt-py-3 oauth-login-link" href="{{AppSubUrl}}/user/oauth2/{{$key}}"> + {{$provider.IconHTML}} + {{$.locale.Tr "sign_in_with_provider" $provider.DisplayName}} + </a> + {{end}} + </div> + </div> + </div> + {{end}} </form> </div> </div> |