Implemented disabling signup using Features.NativeSignup
configuration key
This commit is contained in:
parent
cc5a61fc09
commit
d2d66b6017
|
@ -5,8 +5,10 @@
|
||||||
@using System.Text.Encodings.Web
|
@using System.Text.Encodings.Web
|
||||||
@using Microsoft.AspNetCore.Identity
|
@using Microsoft.AspNetCore.Identity
|
||||||
@using Microsoft.AspNetCore.WebUtilities
|
@using Microsoft.AspNetCore.WebUtilities
|
||||||
|
@using Microsoft.Extensions.Options
|
||||||
@using Wave.Data
|
@using Wave.Data
|
||||||
|
|
||||||
|
@inject IOptions<Features> Features
|
||||||
@inject UserManager<ApplicationUser> UserManager
|
@inject UserManager<ApplicationUser> UserManager
|
||||||
@inject IUserStore<ApplicationUser> UserStore
|
@inject IUserStore<ApplicationUser> UserStore
|
||||||
@inject SignInManager<ApplicationUser> SignInManager
|
@inject SignInManager<ApplicationUser> SignInManager
|
||||||
|
@ -25,9 +27,10 @@
|
||||||
<PageTitle>@Localizer["Title"]</PageTitle>
|
<PageTitle>@Localizer["Title"]</PageTitle>
|
||||||
|
|
||||||
<StatusMessage Message="@Message" />
|
<StatusMessage Message="@Message" />
|
||||||
<div class="flex gap-y-4 gap-x-8 flex-wrap h-full place-content-center">
|
|
||||||
<section class="w-80 max-w-xs">
|
<BoardComponent CenterContent="true">
|
||||||
<h2 class="text-2xl lg:text-4xl mb-3">@Localizer["Title"]</h2>
|
<BoardCardComponent Heading="@Localizer["Title"]">
|
||||||
|
@if (Features.Value.NativeSignup) {
|
||||||
<EditForm Model="Input" asp-route-returnUrl="@ReturnUrl" method="post" OnValidSubmit="RegisterUser"
|
<EditForm Model="Input" asp-route-returnUrl="@ReturnUrl" method="post" OnValidSubmit="RegisterUser"
|
||||||
FormName="register" class="w-full">
|
FormName="register" class="w-full">
|
||||||
<DataAnnotationsValidator />
|
<DataAnnotationsValidator />
|
||||||
|
@ -51,17 +54,13 @@
|
||||||
@Localizer["Submit"]
|
@Localizer["Submit"]
|
||||||
</button>
|
</button>
|
||||||
</EditForm>
|
</EditForm>
|
||||||
</section>
|
} else {
|
||||||
<!--
|
<Alert CanRemove="false" Type="Alert.MessageType.Warning">
|
||||||
<div class="col-md-6 col-md-offset-2">
|
<p><strong>@Localizer["SignupDisabled_Message"]</strong></p>
|
||||||
<section>
|
</Alert>
|
||||||
<h3>Use another service to register.</h3>
|
}
|
||||||
<hr />
|
</BoardCardComponent>
|
||||||
<ExternalLoginPicker />
|
</BoardComponent>
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
-->
|
|
||||||
</div>
|
|
||||||
|
|
||||||
@code {
|
@code {
|
||||||
private IEnumerable<IdentityError>? _identityErrors;
|
private IEnumerable<IdentityError>? _identityErrors;
|
||||||
|
@ -77,6 +76,7 @@
|
||||||
$"Error: {string.Join(", ", _identityErrors.Select(error => error.Description))}";
|
$"Error: {string.Join(", ", _identityErrors.Select(error => error.Description))}";
|
||||||
|
|
||||||
public async Task RegisterUser(EditContext editContext) {
|
public async Task RegisterUser(EditContext editContext) {
|
||||||
|
if (Features.Value.NativeSignup is false) return;
|
||||||
var user = CreateUser();
|
var user = CreateUser();
|
||||||
|
|
||||||
await UserStore.SetUserNameAsync(user, Input.Email, CancellationToken.None);
|
await UserStore.SetUserNameAsync(user, Input.Email, CancellationToken.None);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
@using System.Globalization
|
@using System.Globalization
|
||||||
<div class="alert @GetClass shadow" role="alert">
|
<div class="alert @GetClass shadow hyphens-auto" lang="@CultureInfo.CurrentCulture" role="alert">
|
||||||
<div>
|
<div>
|
||||||
@* ReSharper disable once SwitchStatementMissingSomeEnumCasesNoDefault *@
|
@* ReSharper disable once SwitchStatementMissingSomeEnumCasesNoDefault *@
|
||||||
@switch (Type) {
|
@switch (Type) {
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
@using System.Security.Claims
|
@using System.Security.Claims
|
||||||
|
@using Microsoft.Extensions.Options
|
||||||
|
@using Wave.Data
|
||||||
@implements IDisposable
|
@implements IDisposable
|
||||||
|
|
||||||
@inject NavigationManager NavigationManager
|
@inject NavigationManager NavigationManager
|
||||||
|
@inject IOptions<Features> Features
|
||||||
@inject IStringLocalizer<NavMenu> Localizer
|
@inject IStringLocalizer<NavMenu> Localizer
|
||||||
|
|
||||||
<div class="h-12 hidden md:block" role="banner" aria-label="logo">
|
<div class="h-12 hidden md:block" role="banner" aria-label="logo">
|
||||||
|
@ -79,11 +82,13 @@
|
||||||
</svg>
|
</svg>
|
||||||
</NavLink>
|
</NavLink>
|
||||||
</li>
|
</li>
|
||||||
|
@if (Features.Value.NativeSignup) {
|
||||||
<li>
|
<li>
|
||||||
<NavLink href="Account/Register">
|
<NavLink href="Account/Register">
|
||||||
@Localizer["SignUp_Label"]
|
@Localizer["SignUp_Label"]
|
||||||
</NavLink>
|
</NavLink>
|
||||||
</li>
|
</li>
|
||||||
|
}
|
||||||
</NotAuthorized>
|
</NotAuthorized>
|
||||||
</AuthorizeView>
|
</AuthorizeView>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -63,7 +63,7 @@ public class SitemapController(ApplicationDbContext context, IOptions<Features>
|
||||||
}
|
}
|
||||||
|
|
||||||
root.Add(CreateUrlElement(nameSpace, new Uri(host, "/Account/Login")));
|
root.Add(CreateUrlElement(nameSpace, new Uri(host, "/Account/Login")));
|
||||||
root.Add(CreateUrlElement(nameSpace, new Uri(host, "/Account/Register")));
|
if (Features.NativeSignup) root.Add(CreateUrlElement(nameSpace, new Uri(host, "/Account/Register")));
|
||||||
if (Features.EmailSubscriptions) root.Add(CreateUrlElement(nameSpace, new Uri(host, "/Email/Subscribe")));
|
if (Features.EmailSubscriptions) root.Add(CreateUrlElement(nameSpace, new Uri(host, "/Email/Subscribe")));
|
||||||
|
|
||||||
document.Add(root);
|
document.Add(root);
|
||||||
|
|
|
@ -3,4 +3,5 @@
|
||||||
public class Features {
|
public class Features {
|
||||||
public bool Rss { get; set; } = true;
|
public bool Rss { get; set; } = true;
|
||||||
public bool EmailSubscriptions { get; set; } = false;
|
public bool EmailSubscriptions { get; set; } = false;
|
||||||
|
public bool NativeSignup { get; set; } = true;
|
||||||
}
|
}
|
|
@ -119,4 +119,10 @@
|
||||||
<data name="ConfirmPassword_Placeholder" xml:space="preserve">
|
<data name="ConfirmPassword_Placeholder" xml:space="preserve">
|
||||||
<value>Passwort</value>
|
<value>Passwort</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Email_Placeholder" xml:space="preserve">
|
||||||
|
<value>name@example.de</value>
|
||||||
|
</data>
|
||||||
|
<data name="SignupDisabled_Message" xml:space="preserve">
|
||||||
|
<value>Registrationen wurden auf diesem Server deaktiviert.</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -122,4 +122,7 @@
|
||||||
<data name="Submit" xml:space="preserve">
|
<data name="Submit" xml:space="preserve">
|
||||||
<value>Sign Up Now</value>
|
<value>Sign Up Now</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="SignupDisabled_Message" xml:space="preserve">
|
||||||
|
<value>Sign up has been disabled on this server. </value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
Loading…
Reference in a new issue