1
0
mirror of https://github.com/jakeswenson/BitBetter.git synced 2023-10-10 13:36:57 +02:00

MaxStorageGb customization

This commit is contained in:
Nagy László 2020-11-22 14:14:49 +01:00
parent 46934b0ddd
commit c2edb61a45

View File

@ -36,6 +36,7 @@ namespace bitwardenSelfLicensor
app.Command("interactive", config =>
{
string buff="", licensetype="", name="", email="", businessname="";
short storage = 0;
bool valid_guid = false, valid_installid = false;
Guid guid = new Guid(), installid = new Guid();
@ -114,13 +115,20 @@ namespace bitwardenSelfLicensor
if ( checkEmail(buff) ) email = buff;
}
while (storage == 0)
{
WriteLineOver("Extra storage space for the user " + name + ". (max.: " + short.MaxValue + ") [storage]");
buff = Console.ReadLine();
if (checkStorage(buff)) storage = short.Parse(buff);
}
if (licensetype == "user")
{
WriteLineOver("Confirm creation of \"user\" license for username: \"" + name + "\", email: \"" + email + "\", User-GUID: \"" + guid + "\"? Y/n");
buff = Console.ReadLine();
if ( buff == "" || buff == "y" || buff == "Y" )
{
GenerateUserLicense(new X509Certificate2(cert.Value(), "test"), coreDll.Value(), name, email, guid, null);
GenerateUserLicense(new X509Certificate2(cert.Value(), "test"), coreDll.Value(), name, email, storage, guid, null);
}
else
{
@ -134,7 +142,7 @@ namespace bitwardenSelfLicensor
buff = Console.ReadLine();
if ( buff == "" || buff == "y" || buff == "Y" )
{
GenerateOrgLicense(new X509Certificate2(cert.Value(), "test"), coreDll.Value(), name, email, installid, businessname, null);
GenerateOrgLicense(new X509Certificate2(cert.Value(), "test"), coreDll.Value(), name, email, storage, installid, businessname, null);
}
else
{
@ -152,6 +160,7 @@ namespace bitwardenSelfLicensor
var name = config.Argument("Name", "your name");
var email = config.Argument("Email", "your email");
var userIdArg = config.Argument("User ID", "your user id");
var storage = config.Argument("Storage", "Extra storage space in GB. Maximum is " + short.MaxValue + " (optional)");
var key = config.Argument("Key", "your key id (optional)");
var help = config.HelpOption("--help | -h | -?");
@ -178,7 +187,6 @@ namespace bitwardenSelfLicensor
return 1;
}
if (string.IsNullOrWhiteSpace(userIdArg.Value) || !Guid.TryParse(userIdArg.Value, out Guid userId))
{
config.Error.WriteLine($"User ID not provided");
@ -186,7 +194,16 @@ namespace bitwardenSelfLicensor
return 1;
}
GenerateUserLicense(new X509Certificate2(cert.Value(), "test"), coreDll.Value(), name.Value, email.Value, userId, key.Value);
if (double.Parse(storage.Value) > short.MaxValue ||
double.Parse(storage.Value) < 0 ||
string.IsNullOrWhiteSpace(storage.Value))
{
config.Error.WriteLine("The storage value provided is outside the accepted range of [0-" + short.MaxValue + "]");
config.ShowHelp("org");
return 1;
}
GenerateUserLicense(new X509Certificate2(cert.Value(), "test"), coreDll.Value(), name.Value, email.Value, short.Parse(storage.Value), userId, key.Value);
return 0;
});
@ -196,6 +213,7 @@ namespace bitwardenSelfLicensor
var name = config.Argument("Name", "your name");
var email = config.Argument("Email", "your email");
var installId = config.Argument("InstallId", "your installation id (GUID)");
var storage = config.Argument("Storage", "Extra storage space in GB. Maximum is " + short.MaxValue + " (optional)");
var businessName = config.Argument("BusinessName", "name For the organization (optional)");
var key = config.Argument("Key", "your key id (optional)");
var help = config.HelpOption("--help | -h | -?");
@ -233,7 +251,16 @@ namespace bitwardenSelfLicensor
return 1;
}
GenerateOrgLicense(new X509Certificate2(cert.Value(), "test"), coreDll.Value(), name.Value, email.Value, installationId, businessName.Value, key.Value);
if (double.Parse(storage.Value) > short.MaxValue ||
double.Parse(storage.Value) < 0 ||
string.IsNullOrWhiteSpace(storage.Value))
{
config.Error.WriteLine("The storage value provided is outside the accepted range of [0-" + short.MaxValue + "]");
config.ShowHelp("org");
return 1;
}
GenerateOrgLicense(new X509Certificate2(cert.Value(), "test"), coreDll.Value(), name.Value, email.Value, short.Parse(storage.Value), installationId, businessName.Value, key.Value);
return 0;
});
@ -288,6 +315,22 @@ namespace bitwardenSelfLicensor
return true; // TODO: Actually validate
}
// checkStorage Checks that the storage is in a valid range
static bool checkStorage(string s)
{
if (string.IsNullOrWhiteSpace(s))
{
WriteLineOver("The storage provided doesn't appear to be valid.\n");
return false;
}
if (double.Parse(s) > short.MaxValue || double.Parse(s) < 0)
{
WriteLineOver("The storage value provided is outside the accepted range of [0-" + short.MaxValue + "].\n");
return false;
}
return true;
}
// WriteLineOver Writes a new line to console over last line.
static void WriteLineOver(string s)
{
@ -301,8 +344,7 @@ namespace bitwardenSelfLicensor
Console.WriteLine(s);
}
static void GenerateUserLicense(X509Certificate2 cert, string corePath,
string userName, string email, Guid userId, string key)
static void GenerateUserLicense(X509Certificate2 cert, string corePath, string userName, string email, short storage, Guid userId, string key)
{
var core = AssemblyLoadContext.Default.LoadFromAssemblyPath(corePath);
@ -319,7 +361,7 @@ namespace bitwardenSelfLicensor
set("Id", userId);
set("Name", userName);
set("Email", email);
set("MaxStorageGb", short.MaxValue);
set("MaxStorageGb", storage);
set("Premium", true);
set("Version", 1);
set("Issued", DateTime.UtcNow);
@ -333,8 +375,7 @@ namespace bitwardenSelfLicensor
Console.WriteLine(JsonConvert.SerializeObject(license, Formatting.Indented));
}
static void GenerateOrgLicense(X509Certificate2 cert, string corePath,
string userName, string email, Guid instalId, string businessName, string key)
static void GenerateOrgLicense(X509Certificate2 cert, string corePath, string userName, string email, short storage, Guid instalId, string businessName, string key)
{
var core = AssemblyLoadContext.Default.LoadFromAssemblyPath(corePath);
@ -365,7 +406,7 @@ namespace bitwardenSelfLicensor
set("UseDirectory", true);
set("UseTotp", true);
set("Use2fa", true);
set("MaxStorageGb", short.MaxValue);
set("MaxStorageGb", storage);
set("SelfHost", true);
set("UsersGetPremium", true);
set("Version", 6);