Added new disable-registration command line option.

This commit is contained in:
Aaron Clauson
2019-01-06 16:43:55 +01:00
parent 5dc1da2af0
commit 6010a103e0
4 changed files with 15 additions and 7 deletions

View File

@@ -5,7 +5,6 @@ using System.Security.Claims;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Rendering;
@@ -33,7 +32,7 @@ namespace BTCPayServer.Controllers
StoreRepository storeRepository;
RoleManager<IdentityRole> _RoleManager;
SettingsRepository _SettingsRepository;
BTCPayServerEnvironment _btcPayServerEnvironment;
Configuration.BTCPayServerOptions _Options;
ILogger _logger;
public AccountController(
@@ -43,7 +42,7 @@ namespace BTCPayServer.Controllers
SignInManager<ApplicationUser> signInManager,
IEmailSender emailSender,
SettingsRepository settingsRepository,
BTCPayServerEnvironment btcPayServerEnvironment)
Configuration.BTCPayServerOptions options)
{
this.storeRepository = storeRepository;
_userManager = userManager;
@@ -51,7 +50,7 @@ namespace BTCPayServer.Controllers
_emailSender = emailSender;
_RoleManager = roleManager;
_SettingsRepository = settingsRepository;
_btcPayServerEnvironment = btcPayServerEnvironment;
_Options = options;
_logger = Logs.PayServer;
}
@@ -276,9 +275,9 @@ namespace BTCPayServer.Controllers
await _RoleManager.CreateAsync(new IdentityRole(Roles.ServerAdmin));
await _userManager.AddToRoleAsync(user, Roles.ServerAdmin);
if(!_btcPayServerEnvironment.Environment.IsDevelopment())
if(_Options.DisableRegistration)
{
// Once the admin user has been created lock subsequent user registrations until explicitly enabled except for dev builds as unit tests require multiple users.
// Once the admin user has been created lock subsequent user registrations (needs to be disabled for unit tests that require multiple users).
policies.LockSubscription = true;
await _SettingsRepository.UpdateSetting(policies);
}