From cc9a83607c2f31b34ffe42a437456eb295f8e9b5 Mon Sep 17 00:00:00 2001 From: morbalint Date: Sun, 21 Jan 2024 15:25:37 +0100 Subject: [PATCH] use the official discord button on registration page as well and disable the not yet approved external login providers on the registration page --- .../Areas/Identity/Pages/Account/Login.cshtml.cs | 6 ++++++ .../Areas/Identity/Pages/Account/Register.cshtml | 3 ++- .../Identity/Pages/Account/Register.cshtml.cs | 15 ++++++++++++++- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/Kemkas.Web/Areas/Identity/Pages/Account/Login.cshtml.cs b/Kemkas.Web/Areas/Identity/Pages/Account/Login.cshtml.cs index dd52b3b..936edc0 100644 --- a/Kemkas.Web/Areas/Identity/Pages/Account/Login.cshtml.cs +++ b/Kemkas.Web/Areas/Identity/Pages/Account/Login.cshtml.cs @@ -115,6 +115,12 @@ namespace Kemkas.Web.Areas.Identity.Pages.Account returnUrl ??= Url.Content("~/"); ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList(); + + // Disable not yet approved external login providers in production + if (!_environment.IsDevelopment()) + { + ExternalLogins = ExternalLogins.Where(el => el.Name == "Discord").ToList(); + } if (ModelState.IsValid) { diff --git a/Kemkas.Web/Areas/Identity/Pages/Account/Register.cshtml b/Kemkas.Web/Areas/Identity/Pages/Account/Register.cshtml index 6fbfc8f..fed9e18 100644 --- a/Kemkas.Web/Areas/Identity/Pages/Account/Register.cshtml +++ b/Kemkas.Web/Areas/Identity/Pages/Account/Register.cshtml @@ -49,7 +49,8 @@

- @foreach (var provider in Model.ExternalLogins!) + + @foreach (var provider in Model.ExternalLogins!.Where(el => el.Name != "Discord")) { } diff --git a/Kemkas.Web/Areas/Identity/Pages/Account/Register.cshtml.cs b/Kemkas.Web/Areas/Identity/Pages/Account/Register.cshtml.cs index cce2ce5..bd1bff2 100644 --- a/Kemkas.Web/Areas/Identity/Pages/Account/Register.cshtml.cs +++ b/Kemkas.Web/Areas/Identity/Pages/Account/Register.cshtml.cs @@ -30,13 +30,15 @@ namespace Kemkas.Web.Areas.Identity.Pages.Account private readonly IUserEmailStore _emailStore; private readonly ILogger _logger; private readonly IEmailSender _emailSender; + private readonly IWebHostEnvironment _environment; public RegisterModel( UserManager userManager, IUserStore userStore, SignInManager signInManager, ILogger logger, - IEmailSender emailSender) + IEmailSender emailSender, + IWebHostEnvironment environment) { _userManager = userManager; _userStore = userStore; @@ -44,6 +46,7 @@ namespace Kemkas.Web.Areas.Identity.Pages.Account _signInManager = signInManager; _logger = logger; _emailSender = emailSender; + _environment = environment; } ///

@@ -105,12 +108,22 @@ namespace Kemkas.Web.Areas.Identity.Pages.Account { ReturnUrl = returnUrl; ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList(); + // Disable not yet approved external login providers in production + if (!_environment.IsDevelopment()) + { + ExternalLogins = ExternalLogins.Where(el => el.Name == "Discord").ToList(); + } } public async Task OnPostAsync(string returnUrl = null) { returnUrl ??= Url.Content("~/"); ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList(); + // Disable not yet approved external login providers in production + if (!_environment.IsDevelopment()) + { + ExternalLogins = ExternalLogins.Where(el => el.Name == "Discord").ToList(); + } if (!ModelState.IsValid) { return Page();