gen: Added quarters parameter to license generator
This commit is contained in:
@@ -57,13 +57,14 @@ std::string Generator::getPublicKeyFilename()
|
|||||||
return m_publicKeyFile;
|
return m_publicKeyFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string Generator::encodeLicense(
|
std::string Generator::encodeLicenseByVersion(
|
||||||
const std::string& user,
|
const std::string& user,
|
||||||
const std::string& licenseType,
|
const std::string& licenseType,
|
||||||
size_t numberOfUsers,
|
size_t numberOfUsers,
|
||||||
const std::string& version
|
const std::string& version
|
||||||
){
|
){
|
||||||
m_license = nullptr;
|
m_license = nullptr;
|
||||||
|
|
||||||
if (user.size() <= 0)
|
if (user.size() <= 0)
|
||||||
{
|
{
|
||||||
std::cout << "No user given" << std::endl;
|
std::cout << "No user given" << std::endl;
|
||||||
@@ -76,24 +77,31 @@ std::string Generator::encodeLicense(
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!version.empty())
|
if (version.empty())
|
||||||
{
|
{
|
||||||
Version tempVersion = Version::fromString(version);
|
std::cout << "No version given" << std::endl;
|
||||||
if (tempVersion.isValid())
|
return "";
|
||||||
{
|
|
||||||
createLicense(user, licenseType, tempVersion.toShortString(), false, numberOfUsers);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!m_license)
|
Version tempVersion = Version::fromString(version);
|
||||||
|
if (tempVersion.isValid())
|
||||||
{
|
{
|
||||||
createLicense(user, licenseType, getExpireVersion(), false, numberOfUsers);
|
createLicense(user, licenseType, tempVersion.toShortString(), false, numberOfUsers);
|
||||||
}
|
}
|
||||||
|
|
||||||
return m_license->getLicenseString();
|
return m_license->getLicenseString();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string Generator::encodeLicense(
|
std::string Generator::encodeLicenseByQuarters(
|
||||||
|
const std::string& user,
|
||||||
|
const std::string& licenseType,
|
||||||
|
size_t numberOfUsers,
|
||||||
|
size_t quarters
|
||||||
|
){
|
||||||
|
return encodeLicenseByVersion(user, licenseType, numberOfUsers, getExpireVersion(quarters));
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string Generator::encodeLicenseByDays(
|
||||||
const std::string& user,
|
const std::string& user,
|
||||||
const std::string& licenseType,
|
const std::string& licenseType,
|
||||||
size_t numberOfUsers,
|
size_t numberOfUsers,
|
||||||
@@ -273,11 +281,11 @@ int Generator::mapMonthToVersion(int month)
|
|||||||
return (month-1)/3+1;
|
return (month-1)/3+1;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string Generator::getExpireVersion(int versions)
|
std::string Generator::getExpireVersion(int quarters)
|
||||||
{
|
{
|
||||||
boost::gregorian::date today = boost::gregorian::day_clock::local_day();
|
boost::gregorian::date today = boost::gregorian::day_clock::local_day();
|
||||||
int monthNumber = today.month().as_number();
|
int monthNumber = today.month().as_number();
|
||||||
Version version(today.year(), mapMonthToVersion(monthNumber));
|
Version version(today.year(), mapMonthToVersion(monthNumber));
|
||||||
version += versions;
|
version += quarters;
|
||||||
return version.toShortString();
|
return version.toShortString();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,13 +18,19 @@ public:
|
|||||||
Generator();
|
Generator();
|
||||||
~Generator();
|
~Generator();
|
||||||
|
|
||||||
std::string encodeLicense(
|
std::string encodeLicenseByVersion(
|
||||||
const std::string& user,
|
const std::string& user,
|
||||||
const std::string& licenseType,
|
const std::string& licenseType,
|
||||||
size_t numberOfUsers,
|
size_t numberOfUsers,
|
||||||
const std::string& version
|
const std::string& version
|
||||||
);
|
);
|
||||||
std::string encodeLicense(
|
std::string encodeLicenseByQuarters(
|
||||||
|
const std::string& user,
|
||||||
|
const std::string& licenseType,
|
||||||
|
size_t numberOfUsers,
|
||||||
|
size_t quarters
|
||||||
|
);
|
||||||
|
std::string encodeLicenseByDays(
|
||||||
const std::string& user,
|
const std::string& user,
|
||||||
const std::string& licenseType,
|
const std::string& licenseType,
|
||||||
size_t numberOfUsers,
|
size_t numberOfUsers,
|
||||||
@@ -52,7 +58,7 @@ public:
|
|||||||
size_t numberOfUsers
|
size_t numberOfUsers
|
||||||
);
|
);
|
||||||
|
|
||||||
std::string getExpireVersion(int versions = 4);
|
std::string getExpireVersion(int quarters);
|
||||||
void setVersionLine(int year, int minorVersion);
|
void setVersionLine(int year, int minorVersion);
|
||||||
private:
|
private:
|
||||||
int mapMonthToVersion(int month);
|
int mapMonthToVersion(int month);
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ bool process_command_line(int argc, char** argv)
|
|||||||
std::string publicKeyFile;
|
std::string publicKeyFile;
|
||||||
std::string licenseFile = "";
|
std::string licenseFile = "";
|
||||||
std::string type = "";
|
std::string type = "";
|
||||||
|
int quarters = 4;
|
||||||
int days = 0;
|
int days = 0;
|
||||||
int numberOfUsers = 0;
|
int numberOfUsers = 0;
|
||||||
|
|
||||||
@@ -33,6 +34,7 @@ bool process_command_line(int argc, char** argv)
|
|||||||
po::options_description keygen_description("Options Keygeneration");
|
po::options_description keygen_description("Options Keygeneration");
|
||||||
keygen_description.add_options()
|
keygen_description.add_options()
|
||||||
("version,v", po::value<std::string>(&version), "Versionnumber (in format 20xx.x) until Sourcetrail valid")
|
("version,v", po::value<std::string>(&version), "Versionnumber (in format 20xx.x) until Sourcetrail valid")
|
||||||
|
("quarters,q", po::value<int>(&quarters), "Number of quarters Sourcetrail is valid from now")
|
||||||
("users,u", po::value<int>(&numberOfUsers), "Number of users")
|
("users,u", po::value<int>(&numberOfUsers), "Number of users")
|
||||||
("licenseType,t", po::value<std::string>(&type), "License Type of ")
|
("licenseType,t", po::value<std::string>(&type), "License Type of ")
|
||||||
("expiration,e", po::value<int>(&days), "Valid for <value> days");
|
("expiration,e", po::value<int>(&days), "Valid for <value> days");
|
||||||
@@ -117,11 +119,15 @@ bool process_command_line(int argc, char** argv)
|
|||||||
{
|
{
|
||||||
if (days > 0)
|
if (days > 0)
|
||||||
{
|
{
|
||||||
keygen.encodeLicense(user, type, numberOfUsers, days);
|
keygen.encodeLicenseByDays(user, type, numberOfUsers, days);
|
||||||
|
}
|
||||||
|
else if (!version.empty())
|
||||||
|
{
|
||||||
|
keygen.encodeLicenseByVersion(user, type, numberOfUsers, version);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
keygen.encodeLicense(user, type, numberOfUsers, version);
|
keygen.encodeLicenseByQuarters(user, type, numberOfUsers, quarters);
|
||||||
}
|
}
|
||||||
keygen.printLicenseAndWriteItToFile();
|
keygen.printLicenseAndWriteItToFile();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ public:
|
|||||||
generator.loadPrivateKeyFromString(generator.getPrivateKeyPEMFileAsString());
|
generator.loadPrivateKeyFromString(generator.getPrivateKeyPEMFileAsString());
|
||||||
|
|
||||||
License license;
|
License license;
|
||||||
license.loadFromString(generator.encodeLicense("TestUser", "VolumeLicense", 20, ""));
|
license.loadFromString(generator.encodeLicenseByQuarters("TestUser", "VolumeLicense", 20, 4));
|
||||||
|
|
||||||
TS_ASSERT_EQUALS(license.getNumberOfUsers(), 20);
|
TS_ASSERT_EQUALS(license.getNumberOfUsers(), 20);
|
||||||
}
|
}
|
||||||
@@ -59,13 +59,13 @@ public:
|
|||||||
|
|
||||||
License license;
|
License license;
|
||||||
license.loadPublicKeyFromString(generator.getPublicKeyPEMFileAsString());
|
license.loadPublicKeyFromString(generator.getPublicKeyPEMFileAsString());
|
||||||
license.loadFromString(generator.encodeLicense("User", "", 0, 10));
|
license.loadFromString(generator.encodeLicenseByDays("User", "", 0, 10));
|
||||||
|
|
||||||
TS_ASSERT(license.isValid());
|
TS_ASSERT(license.isValid());
|
||||||
TS_ASSERT_EQUALS(license.getTimeLeft(), 10);
|
TS_ASSERT_EQUALS(license.getTimeLeft(), 10);
|
||||||
|
|
||||||
license.loadPublicKeyFromString(generator.getPublicKeyPEMFileAsString());
|
license.loadPublicKeyFromString(generator.getPublicKeyPEMFileAsString());
|
||||||
license.loadFromString(generator.encodeLicense("User", "", 0, -10));
|
license.loadFromString(generator.encodeLicenseByDays("User", "", 0, -10));
|
||||||
|
|
||||||
TS_ASSERT(!license.isValid());
|
TS_ASSERT(!license.isValid());
|
||||||
// -1 and not -10 since it means it is expired
|
// -1 and not -10 since it means it is expired
|
||||||
@@ -79,15 +79,15 @@ public:
|
|||||||
|
|
||||||
License license;
|
License license;
|
||||||
|
|
||||||
license.loadFromString(generator.encodeLicense("TestUser", "Private License", 1, "2017.4"));
|
license.loadFromString(generator.encodeLicenseByVersion("TestUser", "Private License", 1, "2017.4"));
|
||||||
std::string testInfo = "TestUser\nPrivate License\n1 user\nvalid up to version: 2017.4";
|
std::string testInfo = "TestUser\nPrivate License\n1 user\nvalid up to version: 2017.4";
|
||||||
TS_ASSERT_EQUALS(license.getLicenseInfo(), testInfo);
|
TS_ASSERT_EQUALS(license.getLicenseInfo(), testInfo);
|
||||||
|
|
||||||
license.loadFromString(generator.encodeLicense("TestUser", "Volume License", 20, "2017.3"));
|
license.loadFromString(generator.encodeLicenseByVersion("TestUser", "Volume License", 20, "2017.3"));
|
||||||
testInfo = "TestUser\nVolume License\n20 users\nvalid up to version: 2017.3";
|
testInfo = "TestUser\nVolume License\n20 users\nvalid up to version: 2017.3";
|
||||||
TS_ASSERT_EQUALS(license.getLicenseInfo(), testInfo);
|
TS_ASSERT_EQUALS(license.getLicenseInfo(), testInfo);
|
||||||
|
|
||||||
license.loadFromString(generator.encodeLicense("TestUser", "Private/Academic Single User License", 0, "2018.1"));
|
license.loadFromString(generator.encodeLicenseByVersion("TestUser", "Private/Academic Single User License", 0, "2018.1"));
|
||||||
testInfo = "TestUser\nPrivate/Academic Single User License\nnot registered for commercial development\nvalid up to version: 2018.1";
|
testInfo = "TestUser\nPrivate/Academic Single User License\nnot registered for commercial development\nvalid up to version: 2018.1";
|
||||||
TS_ASSERT_EQUALS(license.getLicenseInfo(), testInfo);
|
TS_ASSERT_EQUALS(license.getLicenseInfo(), testInfo);
|
||||||
}
|
}
|
||||||
@@ -99,7 +99,7 @@ public:
|
|||||||
|
|
||||||
generator.loadPrivateKeyFromString(generator.getPrivateKeyPEMFileAsString());
|
generator.loadPrivateKeyFromString(generator.getPrivateKeyPEMFileAsString());
|
||||||
License license;
|
License license;
|
||||||
license.loadFromString(generator.encodeLicense("TestUser", "Private License", 20, "2017.3"));
|
license.loadFromString(generator.encodeLicenseByVersion("TestUser", "Private License", 20, "2017.3"));
|
||||||
license.loadPublicKeyFromString(generator.getPublicKeyPEMFileAsString());
|
license.loadPublicKeyFromString(generator.getPublicKeyPEMFileAsString());
|
||||||
|
|
||||||
TS_ASSERT_EQUALS(license.getUser(), "TestUser");
|
TS_ASSERT_EQUALS(license.getUser(), "TestUser");
|
||||||
|
|||||||
Reference in New Issue
Block a user