Initial
This commit is contained in:
165
guitar/registration.cpp
Normal file
165
guitar/registration.cpp
Normal file
@@ -0,0 +1,165 @@
|
||||
#include <guitar/registration.hpp>
|
||||
#include <guitar/guitar.hpp>
|
||||
#include <common/version.hpp>
|
||||
#include <common/openfile.hpp>
|
||||
|
||||
SmartPointer<Registration> Registration::smRegistration;
|
||||
|
||||
Registration::Registration()
|
||||
: mRegistrationKeyName(STRING_REGISTRATIONKEYNAME),
|
||||
mSettingsLicenseKey(STRING_SETTINGSLICENSE)
|
||||
{
|
||||
}
|
||||
|
||||
Registration::~Registration()
|
||||
{
|
||||
}
|
||||
|
||||
Registration &Registration::getInstance()
|
||||
{
|
||||
if(!smRegistration.isOkay())
|
||||
{
|
||||
smRegistration=::new Registration();
|
||||
smRegistration.disposition(PointerDisposition::Delete);
|
||||
}
|
||||
return *smRegistration;
|
||||
}
|
||||
|
||||
bool Registration::hasGID(void)const
|
||||
{
|
||||
FileHandle gidFile;
|
||||
return gidFile.open("install.gid",FileHandle::Read,FileHandle::ShareRead,FileHandle::Open,FileHandle::Hidden);
|
||||
}
|
||||
|
||||
bool Registration::hasLicense(void)const
|
||||
{
|
||||
RegKey regKeyRegistration;
|
||||
String strLicense;
|
||||
|
||||
if(!regKeyRegistration.openKey(mRegistrationKeyName))return false;
|
||||
regKeyRegistration.queryValue(mSettingsLicenseKey,strLicense);
|
||||
return strLicense.isNull()?false:true;
|
||||
}
|
||||
|
||||
bool Registration::getLicense(License &license)const
|
||||
{
|
||||
String strLicense;
|
||||
RegKey regKeyRegistration;
|
||||
if(!regKeyRegistration.openKey(mRegistrationKeyName))return false;
|
||||
regKeyRegistration.queryValue(mSettingsLicenseKey,strLicense);
|
||||
license.fromString(strLicense);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Registration::applyLicense(Block<String> &strLicenseLines)
|
||||
{
|
||||
RegKey regKeyRegistration;
|
||||
License license;
|
||||
|
||||
license.fromLines(strLicenseLines);
|
||||
if(!license.isValid())return false;
|
||||
if(!regKeyRegistration.openKey(mRegistrationKeyName))
|
||||
{
|
||||
regKeyRegistration.createKey(mRegistrationKeyName,"");
|
||||
regKeyRegistration.openKey(mRegistrationKeyName);
|
||||
}
|
||||
regKeyRegistration.setValue(mSettingsLicenseKey,license.getUUEncodedLicense());
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Registration::applyLicense(const String &uuencodedLicense)
|
||||
{
|
||||
RegKey regKeyRegistration;
|
||||
License license;
|
||||
|
||||
license.fromString(uuencodedLicense);
|
||||
if(!license.isValid())return false;
|
||||
if(!regKeyRegistration.openKey(mRegistrationKeyName))
|
||||
{
|
||||
regKeyRegistration.createKey(mRegistrationKeyName,"");
|
||||
regKeyRegistration.openKey(mRegistrationKeyName);
|
||||
}
|
||||
regKeyRegistration.setValue(mSettingsLicenseKey,uuencodedLicense);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Registration::create30DayLicense(void)const
|
||||
{
|
||||
createLicense(30);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Registration::create15DayLicense(void)const
|
||||
{
|
||||
createLicense(15);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Registration::createPermanentLicense(void)const
|
||||
{
|
||||
VersionInfo versionInfo;
|
||||
SystemTime issueDate;
|
||||
String strLicense;
|
||||
String strVersion;
|
||||
RegKey regKeyRegistration;
|
||||
FileHandle gidFile;
|
||||
|
||||
if(!regKeyRegistration.openKey(mRegistrationKeyName))
|
||||
{
|
||||
regKeyRegistration.createKey(mRegistrationKeyName,"");
|
||||
regKeyRegistration.openKey(mRegistrationKeyName);
|
||||
}
|
||||
strVersion=versionInfo.getProductVersionString();
|
||||
strVersion.removeTokens(", ");
|
||||
strVersion.upper();
|
||||
strLicense=License::generate(strVersion,issueDate,License::Permanent,0);
|
||||
regKeyRegistration.setValue(mSettingsLicenseKey,strLicense);
|
||||
gidFile.open("install.gid",FileHandle::Write,FileHandle::ShareRead,FileHandle::Overwrite,FileHandle::Hidden);
|
||||
return true;
|
||||
}
|
||||
|
||||
License Registration::generatePermanentLicense(void)const
|
||||
{
|
||||
VersionInfo versionInfo;
|
||||
SystemTime issueDate;
|
||||
String strLicense;
|
||||
String strVersion;
|
||||
License license;
|
||||
|
||||
strVersion=versionInfo.getProductVersionString();
|
||||
strVersion.removeTokens(", ");
|
||||
strVersion.upper();
|
||||
strLicense=License::generate(strVersion,issueDate,License::Permanent,0);
|
||||
license.fromString(strLicense);
|
||||
return license;
|
||||
}
|
||||
|
||||
bool Registration::removeLicense(void)
|
||||
{
|
||||
RegKey regKeyRegistration;
|
||||
return regKeyRegistration.deleteKey(mRegistrationKeyName);
|
||||
}
|
||||
|
||||
bool Registration::createLicense(int days)const
|
||||
{
|
||||
VersionInfo versionInfo;
|
||||
SystemTime issueDate;
|
||||
String strLicense;
|
||||
String strVersion;
|
||||
RegKey regKeyRegistration;
|
||||
FileHandle gidFile;
|
||||
|
||||
if(!regKeyRegistration.openKey(mRegistrationKeyName))
|
||||
{
|
||||
regKeyRegistration.createKey(mRegistrationKeyName,"");
|
||||
regKeyRegistration.openKey(mRegistrationKeyName);
|
||||
}
|
||||
strVersion=versionInfo.getProductVersionString();
|
||||
strVersion.removeTokens(", ");
|
||||
strVersion.upper();
|
||||
strLicense=License::generate(strVersion,issueDate,License::Expires,days);
|
||||
regKeyRegistration.setValue(mSettingsLicenseKey,strLicense);
|
||||
gidFile.open("install.gid",FileHandle::Write,FileHandle::ShareRead,FileHandle::Overwrite,FileHandle::Hidden);
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user