diff --git a/services/context/context_response.go b/services/context/context_response.go index 52737923bb..c4b7fd1d1c 100644 --- a/services/context/context_response.go +++ b/services/context/context_response.go @@ -16,8 +16,11 @@ import ( "syscall" "time" + auth_model "code.mokoconsulting.tech/MokoConsulting/MokoGitea/models/auth" user_model "code.mokoconsulting.tech/MokoConsulting/MokoGitea/models/user" "code.mokoconsulting.tech/MokoConsulting/MokoGitea/modules/httplib" + "code.mokoconsulting.tech/MokoConsulting/MokoGitea/modules/optional" + "code.mokoconsulting.tech/MokoConsulting/MokoGitea/services/auth/source/oauth2" "code.mokoconsulting.tech/MokoConsulting/MokoGitea/modules/log" "code.mokoconsulting.tech/MokoConsulting/MokoGitea/modules/setting" "code.mokoconsulting.tech/MokoConsulting/MokoGitea/modules/structs" @@ -187,6 +190,17 @@ func (ctx *Context) Forbidden() { ctx.Data["IsRepo"] = ctx.Repo.Repository != nil ctx.Data["Title"] = "Access Denied" ctx.Data["CurrentURL"] = ctx.Req.URL.RequestURI() + + // Load OAuth2 providers for the login form on the 403 page + if !ctx.IsSigned { + oauth2Providers, err := oauth2.GetOAuth2Providers(ctx, optional.Some(true)) + if err != nil { + log.Error("Forbidden: GetOAuth2Providers: %v", err) + } + ctx.Data["OAuth2Providers"] = oauth2Providers + ctx.Data["EnableSSPI"] = auth_model.IsSSPIEnabled(ctx) + } + ctx.HTML(http.StatusForbidden, "status/403") } diff --git a/templates/status/403.tmpl b/templates/status/403.tmpl index fe6e58faa0..fdb2146177 100644 --- a/templates/status/403.tmpl +++ b/templates/status/403.tmpl @@ -10,6 +10,10 @@ {{if not .IsSigned}}