diff --git a/.vscode/launch.json b/.vscode/launch.json index 63ffff31..2668545b 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -121,7 +121,7 @@ "AYANOVA_USE_URLS": "http://*:7575;", //"AYANOVA_PERMANENTLY_ERASE_DATABASE":"true", //"AYANOVA_REMOVE_LICENSE_FROM_DB":"true", - "AYANOVA_SERVER_TEST_MODE": "true", + //"AYANOVA_SERVER_TEST_MODE": "true", "AYANOVA_SERVER_TEST_MODE_TZ_OFFSET": "-8", "AYANOVA_SERVER_TEST_MODE_SEEDLEVEL": "small", "AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\data\\code\\postgres_14\\bin" diff --git a/devdocs/todo.txt b/devdocs/todo.txt index 94c9439f..917809e9 100644 --- a/devdocs/todo.txt +++ b/devdocs/todo.txt @@ -34,12 +34,14 @@ WIP >>>>>>>>>>>>> -Status: Test recent change to customer login license check making new user or setting to active or setting to allowlogin +Status: Also in between times fixup the additional fields in product pages for sale see item in parallel work section below (and see if can change price on subscription or do I need to make a new one?) todo: Test how to revoke a license, I'm wondering if new code at license.cs is now preventing installing the revoke license +todo: expired license does it stop notifying and jobs?? + I think all jobs should stop and not be processed except for the license fetching job NOTE: NOT RELEASABLE, MANUAL NEEDS TO BE UPDATED FIRST THEN CAN REBUILD AND POST diff --git a/server/AyaNova/util/License.cs b/server/AyaNova/util/License.cs index 85e02707..d33c2f40 100644 --- a/server/AyaNova/util/License.cs +++ b/server/AyaNova/util/License.cs @@ -901,6 +901,10 @@ namespace AyaNova.Core throw new ApplicationException("E1020 - Can't install a trial key into a non empty AyaNova database. Erase the database first."); } + + //Only check quantities if it's not a revoke token which should always pass through + if (ParsedNewKey.RegisteredTo != REVOKED_TOKEN) + { #if (SUBSCRIPTION_BUILD) //SUBSCRIPTION USER COUNTS - new license causes exceeding counts? @@ -928,18 +932,18 @@ namespace AyaNova.Core throw new ApplicationException(err); #else - //PERPETUAL, vet the TECHCOUNT - new license causes exceeding count? - long NewTechCount = ParsedNewKey.ActiveTechsCount; - if (await AyaNova.Biz.UserBiz.ActiveTechUserCountAsync() > NewTechCount) - { - //attempt to set enough of the eldest last login techs to inactive - await AyaNova.Biz.UserBiz.DeActivateExcessiveTechs(NewTechCount, log); - + //PERPETUAL, vet the TECHCOUNT - new license causes exceeding count? + long NewTechCount = ParsedNewKey.ActiveTechsCount; if (await AyaNova.Biz.UserBiz.ActiveTechUserCountAsync() > NewTechCount) - throw new ApplicationException("E1020 - Can't install key, too many active techs and / or subcontractors in database. Deactivate enough to install key."); - } -#endif + { + //attempt to set enough of the eldest last login techs to inactive + await AyaNova.Biz.UserBiz.DeActivateExcessiveTechs(NewTechCount, log); + if (await AyaNova.Biz.UserBiz.ActiveTechUserCountAsync() > NewTechCount) + throw new ApplicationException("E1020 - Can't install key, too many active techs and / or subcontractors in database. Deactivate enough to install key."); + } +#endif + } //Update current license @@ -1063,17 +1067,18 @@ EQIDAQAB #endregion get values - - //Check if attempting to use a build of AyaNova that is newer than maintenance subscription expiry - if (MExBB(Util.FileUtil.GetLinkerTimestampUtc(System.Reflection.Assembly.GetExecutingAssembly()), key)) + if (key.RegisteredTo != REVOKED_TOKEN) { - Console.WriteLine(LICENSE_MISMATCH_TO_BUILD_ERROR); - log.LogError("E1020 - build too new for license"); - //NOTE: LICENSE_MISMATCH_TO_BUILD_ERROR matched for in startup.cs DO NOT change this without fixing the side effects - throw new ApplicationException(LICENSE_MISMATCH_TO_BUILD_ERROR); - } + //Check if attempting to use a build of AyaNova that is newer than maintenance subscription expiry + if (MExBB(Util.FileUtil.GetLinkerTimestampUtc(System.Reflection.Assembly.GetExecutingAssembly()), key)) + { + Console.WriteLine(LICENSE_MISMATCH_TO_BUILD_ERROR); + log.LogError("E1020 - build too new for license"); + //NOTE: LICENSE_MISMATCH_TO_BUILD_ERROR matched for in startup.cs DO NOT change this without fixing the side effects + throw new ApplicationException(LICENSE_MISMATCH_TO_BUILD_ERROR); + } - //Subscription licenses only for subscription builds and Perpetual licenses only for Perpetual builds + //Subscription licenses only for subscription builds and Perpetual licenses only for Perpetual builds #if (SUBSCRIPTION_BUILD) if(key.Perpetual){ Console.WriteLine(LICENSE_MISMATCH_TO_BUILD_ERROR); @@ -1082,16 +1087,16 @@ EQIDAQAB throw new ApplicationException(LICENSE_MISMATCH_TO_BUILD_ERROR); } #else - if (!key.Perpetual) - { - Console.WriteLine(LICENSE_MISMATCH_TO_BUILD_ERROR); - log.LogError("E1020 - perpetual build but subscription key"); - //NOTE: LICENSE_MISMATCH_TO_BUILD_ERROR bit below is checked for in startup.cs DO NOT remove this without fixing the side effects - throw new ApplicationException(LICENSE_MISMATCH_TO_BUILD_ERROR); - } + if (!key.Perpetual) + { + Console.WriteLine(LICENSE_MISMATCH_TO_BUILD_ERROR); + log.LogError("E1020 - perpetual build but subscription key"); + //NOTE: LICENSE_MISMATCH_TO_BUILD_ERROR bit below is checked for in startup.cs DO NOT remove this without fixing the side effects + throw new ApplicationException(LICENSE_MISMATCH_TO_BUILD_ERROR); + } #endif - + } //All is well return key return key;