Merge pull request #212 from Moonlight-Panel/AddLoginRegisterDeny
Add config option to prevent users from login and register
This commit is contained in:
@@ -17,6 +17,8 @@ public class ConfigV1
|
|||||||
[Description("The url moonlight is accesible with from the internet")]
|
[Description("The url moonlight is accesible with from the internet")]
|
||||||
public string AppUrl { get; set; } = "http://your-moonlight-url-without-slash";
|
public string AppUrl { get; set; } = "http://your-moonlight-url-without-slash";
|
||||||
|
|
||||||
|
[JsonProperty("Auth")] public AuthData Auth { get; set; } = new();
|
||||||
|
|
||||||
[JsonProperty("Database")] public DatabaseData Database { get; set; } = new();
|
[JsonProperty("Database")] public DatabaseData Database { get; set; } = new();
|
||||||
|
|
||||||
[JsonProperty("DiscordBotApi")] public DiscordBotApiData DiscordBotApi { get; set; } = new();
|
[JsonProperty("DiscordBotApi")] public DiscordBotApiData DiscordBotApi { get; set; } = new();
|
||||||
@@ -39,8 +41,7 @@ public class ConfigV1
|
|||||||
|
|
||||||
[JsonProperty("Subscriptions")] public SubscriptionsData Subscriptions { get; set; } = new();
|
[JsonProperty("Subscriptions")] public SubscriptionsData Subscriptions { get; set; } = new();
|
||||||
|
|
||||||
[JsonProperty("DiscordNotifications")]
|
[JsonProperty("DiscordNotifications")] public DiscordNotificationsData DiscordNotifications { get; set; } = new();
|
||||||
public DiscordNotificationsData DiscordNotifications { get; set; } = new();
|
|
||||||
|
|
||||||
[JsonProperty("Statistics")] public StatisticsData Statistics { get; set; } = new();
|
[JsonProperty("Statistics")] public StatisticsData Statistics { get; set; } = new();
|
||||||
|
|
||||||
@@ -50,6 +51,17 @@ public class ConfigV1
|
|||||||
|
|
||||||
[JsonProperty("Sentry")] public SentryData Sentry { get; set; } = new();
|
[JsonProperty("Sentry")] public SentryData Sentry { get; set; } = new();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class AuthData
|
||||||
|
{
|
||||||
|
[JsonProperty("DenyLogin")]
|
||||||
|
[Description("Prevent every new login")]
|
||||||
|
public bool DenyLogin { get; set; } = false;
|
||||||
|
|
||||||
|
[JsonProperty("DenyRegister")]
|
||||||
|
[Description("Prevent every new user to register")]
|
||||||
|
public bool DenyRegister { get; set; } = false;
|
||||||
|
}
|
||||||
|
|
||||||
public class CleanupData
|
public class CleanupData
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ public class UserService
|
|||||||
private readonly IdentityService IdentityService;
|
private readonly IdentityService IdentityService;
|
||||||
private readonly IpLocateService IpLocateService;
|
private readonly IpLocateService IpLocateService;
|
||||||
private readonly DateTimeService DateTimeService;
|
private readonly DateTimeService DateTimeService;
|
||||||
|
private readonly ConfigService ConfigService;
|
||||||
|
|
||||||
private readonly string JwtSecret;
|
private readonly string JwtSecret;
|
||||||
|
|
||||||
@@ -32,6 +33,7 @@ public class UserService
|
|||||||
{
|
{
|
||||||
UserRepository = userRepository;
|
UserRepository = userRepository;
|
||||||
TotpService = totpService;
|
TotpService = totpService;
|
||||||
|
ConfigService = configService;
|
||||||
MailService = mailService;
|
MailService = mailService;
|
||||||
IdentityService = identityService;
|
IdentityService = identityService;
|
||||||
IpLocateService = ipLocateService;
|
IpLocateService = ipLocateService;
|
||||||
@@ -44,6 +46,9 @@ public class UserService
|
|||||||
|
|
||||||
public async Task<string> Register(string email, string password, string firstname, string lastname)
|
public async Task<string> Register(string email, string password, string firstname, string lastname)
|
||||||
{
|
{
|
||||||
|
if (ConfigService.Get().Moonlight.Auth.DenyRegister)
|
||||||
|
throw new DisplayException("This operation was disabled");
|
||||||
|
|
||||||
// Check if the email is already taken
|
// Check if the email is already taken
|
||||||
var emailTaken = UserRepository.Get().FirstOrDefault(x => x.Email == email) != null;
|
var emailTaken = UserRepository.Get().FirstOrDefault(x => x.Email == email) != null;
|
||||||
|
|
||||||
@@ -108,6 +113,9 @@ public class UserService
|
|||||||
|
|
||||||
public async Task<string> Login(string email, string password, string totpCode = "")
|
public async Task<string> Login(string email, string password, string totpCode = "")
|
||||||
{
|
{
|
||||||
|
if (ConfigService.Get().Moonlight.Auth.DenyLogin)
|
||||||
|
throw new DisplayException("This operation was disabled");
|
||||||
|
|
||||||
// First password check and check if totp is enabled
|
// First password check and check if totp is enabled
|
||||||
var needTotp = await CheckTotp(email, password);
|
var needTotp = await CheckTotp(email, password);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user