Procházet zdrojové kódy

PasswordExpiry <= 0 now disables expiration check

Kenric Nugteren před 2 roky
rodič
revize
0523663468
1 změnil soubory, kde provedl 6 přidání a 4 odebrání
  1. 6 4
      InABox.Server/RestService.cs

+ 6 - 4
InABox.Server/RestService.cs

@@ -11,6 +11,8 @@ namespace InABox.API
 {
 {
     public class RestService
     public class RestService
     {
     {
+        public static bool CheckPasswordExpiration { get; set; } = true;
+
         protected static void GarbageCollection()
         protected static void GarbageCollection()
         {
         {
             //DateTime now = DateTime.Now;
             //DateTime now = DateTime.Now;
@@ -155,7 +157,7 @@ namespace InABox.API
                 Logger.Send(LogType.Information, "", $"Login failed!");
                 Logger.Send(LogType.Information, "", $"Login failed!");
                 response.ValidationResult = ValidationResult.INVALID;
                 response.ValidationResult = ValidationResult.INVALID;
             }
             }
-            else if (!request.UsePIN && user.PasswordExpiration > DateTime.MinValue && user.PasswordExpiration < DateTime.Now)
+            else if (CheckPasswordExpiration && !request.UsePIN && user.PasswordExpiration > DateTime.MinValue && user.PasswordExpiration < DateTime.Now)
             {
             {
                 Logger.Send(LogType.Information, user.UserID, $"Password for ({user.UserID}) has expired!");
                 Logger.Send(LogType.Information, user.UserID, $"Password for ({user.UserID}) has expired!");
 
 
@@ -170,7 +172,7 @@ namespace InABox.API
                 response.UserID = user.UserID;
                 response.UserID = user.UserID;
                 response.SecurityID = user.SecurityGroup.ID;
                 response.SecurityID = user.SecurityGroup.ID;
                 response.Session = request.Credentials.Session;
                 response.Session = request.Credentials.Session;
-                response.PasswordExpiration = user.PasswordExpiration;
+                response.PasswordExpiration = CheckPasswordExpiration ? user.PasswordExpiration : DateTime.MinValue;
             }
             }
             else if (user.ID == CoreUtils.FullGuid || !user.Use2FA)
             else if (user.ID == CoreUtils.FullGuid || !user.Use2FA)
             {
             {
@@ -183,7 +185,7 @@ namespace InABox.API
                 response.Session = user.ID == CoreUtils.FullGuid ? 
                 response.Session = user.ID == CoreUtils.FullGuid ? 
                     CredentialsCache.NewSession(user, true, DateTime.MaxValue) :
                     CredentialsCache.NewSession(user, true, DateTime.MaxValue) :
                     CredentialsCache.NewSession(user, true);
                     CredentialsCache.NewSession(user, true);
-                response.PasswordExpiration = user.PasswordExpiration;
+                response.PasswordExpiration = CheckPasswordExpiration ? user.PasswordExpiration : DateTime.MinValue;
             }
             }
             else
             else
             {
             {
@@ -199,7 +201,7 @@ namespace InABox.API
                     response.SecurityID = user.SecurityGroup.ID;
                     response.SecurityID = user.SecurityGroup.ID;
                     response.Session = session ?? Guid.Empty;
                     response.Session = session ?? Guid.Empty;
                     response.Recipient2FA = recipient;
                     response.Recipient2FA = recipient;
-                    response.PasswordExpiration = user.PasswordExpiration;
+                    response.PasswordExpiration = CheckPasswordExpiration ? user.PasswordExpiration : DateTime.MinValue;
                 }
                 }
                 else
                 else
                 {
                 {