Add UmbracoLogin/Index.cshtml from V13 into the Umbraco.Web.UI executable to override the V14 login screen

This commit is contained in:
Jacob Overgaard
2023-10-30 15:43:02 +01:00
parent ebef3e2359
commit ca03034afb
2 changed files with 77 additions and 0 deletions

View File

@@ -22,6 +22,7 @@
<AdditionalFiles Include="umbraco\UmbracoBackOffice\Default.cshtml" />
<AdditionalFiles Include="umbraco\UmbracoBackOffice\Preview.cshtml" />
<AdditionalFiles Include="umbraco\UmbracoInstall\Index.cshtml" />
<AdditionalFiles Include="umbraco\UmbracoLogin\Index.cshtml" />
<AdditionalFiles Include="umbraco\UmbracoWebsite\Maintenance.cshtml" />
<AdditionalFiles Include="umbraco\UmbracoWebsite\NoNodes.cshtml" />
<AdditionalFiles Include="umbraco\UmbracoWebsite\NotFound.cshtml" />

View File

@@ -0,0 +1,76 @@
@using System.Globalization
@using Microsoft.AspNetCore.Routing
@using Microsoft.Extensions.Options;
@using Umbraco.Cms.Core
@using Umbraco.Cms.Core.Configuration.Models
@using Umbraco.Cms.Core.Hosting
@using Umbraco.Cms.Core.Mail
@using Umbraco.Cms.Web.BackOffice.Controllers
@using Umbraco.Cms.Web.BackOffice.Security
@using Umbraco.Extensions
@inject IOptions<ContentSettings> ContentSettings
@inject IOptions<SecuritySettings> SecuritySettings
@inject IEmailSender EmailSender
@inject IHostingEnvironment HostingEnvironment
@inject IOptions<GlobalSettings> GlobalSettings
@inject IBackOfficeExternalLoginProviders ExternalLogins
@inject LinkGenerator LinkGenerator
@{
var backOfficePath = GlobalSettings.Value.GetBackOfficePath(HostingEnvironment);
var loginLogoImage = ContentSettings.Value.LoginLogoImage;
var loginBackgroundImage = ContentSettings.Value.LoginBackgroundImage;
var usernameIsEmail = SecuritySettings.Value.UsernameIsEmail;
var allowUserInvite = EmailSender.CanSendRequiredEmail();
var allowPasswordReset = SecuritySettings.Value.AllowPasswordReset && EmailSender.CanSendRequiredEmail();
var disableLocalLogin = ExternalLogins.HasDenyLocalLogin();
var externalLoginsUrl = LinkGenerator.GetPathByAction(nameof(BackOfficeController.ExternalLogin), ControllerExtensions.GetControllerName<BackOfficeController>(), new { area = Constants.Web.Mvc.BackOfficeArea });
var externalLoginProviders = await ExternalLogins.GetBackOfficeProvidersAsync();
}
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
<!DOCTYPE html>
<html lang="@CultureInfo.CurrentCulture.Name.ToLowerInvariant()">
<head>
<meta charset="UTF-8"/>
<base href="@backOfficePath.EnsureEndsWith('/')"/>
<link rel="icon" type="image/svg+xml" href="~/umbraco/login/favicon.svg"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>Umbraco</title>
<link rel="stylesheet" href="~/umbraco/login/style.css" asp-append-version="true" />
<script type="module" src="~/umbraco/login/external.js" asp-append-version="true"></script>
<script type="module" src="~/umbraco/login/index.js" asp-append-version="true"></script>
<style>
body {
margin: 0;
padding: 0;
}
</style>
</head>
<body class="uui-font uui-text" style="margin: 0; padding: 0; overflow: hidden">
<umb-backoffice-icon-registry>
<umb-auth
return-url="@backOfficePath"
logo-image="@loginLogoImage"
background-image="@loginBackgroundImage"
username-is-email="@usernameIsEmail"
allow-user-invite="@allowUserInvite"
allow-password-reset="@allowPasswordReset"
disable-local-login="@disableLocalLogin">
@foreach (var provider in externalLoginProviders)
{
<umb-external-login-provider
slot="external"
display-name="@provider.AuthenticationScheme.DisplayName"
provider-name="@provider.ExternalLoginProvider.AuthenticationType"
icon="@provider.ExternalLoginProvider.Options.Icon"
external-login-url="@externalLoginsUrl"
button-look="@provider.ExternalLoginProvider.Options.ButtonLook.ToString().ToLowerInvariant()"
button-color="@provider.ExternalLoginProvider.Options.ButtonColor.ToString().ToLowerInvariant()"
custom-view="@provider.ExternalLoginProvider.Options.CustomBackOfficeView">
</umb-external-login-provider>
}
</umb-auth>
</umb-backoffice-icon-registry>
</body>
</html>