|
|
|
@ -1,12 +1,10 @@
@@ -1,12 +1,10 @@
|
|
|
|
|
#include "main.h" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Main sets up the Application/GUI, and tries to retrieveLogin()
|
|
|
|
|
int main(int argc, char *argv[]) { |
|
|
|
|
QApplication app(argc,argv); |
|
|
|
|
QWidget *window = new QWidget; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
domainLE = new QLineEdit; |
|
|
|
|
tokenUsername = new QLineEdit; |
|
|
|
|
tokenCode = new QLineEdit; |
|
|
|
@ -43,7 +41,6 @@ int main(int argc, char *argv[]) {
@@ -43,7 +41,6 @@ int main(int argc, char *argv[]) {
|
|
|
|
|
|
|
|
|
|
QObject::connect(&loginBtn, &QPushButton::released, tryLogin); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
window->setLayout(vboxLayout); |
|
|
|
|
window->show(); |
|
|
|
|
return app.exec(); |
|
|
|
@ -52,25 +49,25 @@ int main(int argc, char *argv[]) {
@@ -52,25 +49,25 @@ int main(int argc, char *argv[]) {
|
|
|
|
|
|
|
|
|
|
// walletOpen() returns a pointer to the kwallet, or throws an error if the wallet is unable to open.
|
|
|
|
|
KWallet::Wallet* walletOpen() { |
|
|
|
|
KWallet::Wallet *wallet = KWallet::Wallet::openWallet(KWallet::Wallet::NetworkWallet(), 0, KWallet::Wallet::Synchronous); |
|
|
|
|
if (wallet->hasFolder(KWallet::Wallet::FormDataFolder())) { |
|
|
|
|
KWallet::Wallet *wallet = KWallet::Wallet::openWallet(KWallet::Wallet::NetworkWallet(), 0, KWallet::Wallet::Synchronous); |
|
|
|
|
if (wallet->hasFolder(KWallet::Wallet::FormDataFolder())) { |
|
|
|
|
if (!wallet->setFolder(KWallet::Wallet::FormDataFolder())) { |
|
|
|
|
std::cout << "Wallet folder could not be set." << std::endl; |
|
|
|
|
throw -1; |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
std::cout << "Wallet did not have folder, creating." << std::endl; |
|
|
|
|
if(wallet->createFolder(KWallet::Wallet::FormDataFolder())) { |
|
|
|
|
if (!wallet->setFolder(KWallet::Wallet::FormDataFolder())) { |
|
|
|
|
std::cout << "Wallet folder could not be set." << std::endl; |
|
|
|
|
throw -1; |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
std::cout << "Wallet did not have folder, creating." << std::endl; |
|
|
|
|
if(wallet->createFolder(KWallet::Wallet::FormDataFolder())) { |
|
|
|
|
if (!wallet->setFolder(KWallet::Wallet::FormDataFolder())) { |
|
|
|
|
std::cout << "Wallet folder could not be set." << std::endl; |
|
|
|
|
throw -1; |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
std::cout << "Could not create folder." << std::endl; |
|
|
|
|
throw -1; |
|
|
|
|
} |
|
|
|
|
std::cout << "Could not create folder." << std::endl; |
|
|
|
|
throw -1; |
|
|
|
|
} |
|
|
|
|
return wallet; |
|
|
|
|
} |
|
|
|
|
return wallet; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// retrieve login information from kwallet using walletOpen() or die
|
|
|
|
@ -80,19 +77,19 @@ void retrieveLogin() {
@@ -80,19 +77,19 @@ void retrieveLogin() {
|
|
|
|
|
} catch (int e) { |
|
|
|
|
exit(-1); |
|
|
|
|
} |
|
|
|
|
QMap<QString, QString> map; |
|
|
|
|
if (wallet->readMap("http://rsa-vdi.nightmare.haus/#authInfo", map) == 0) { |
|
|
|
|
domainLE->setText(map[QString("domain")]); |
|
|
|
|
tokenUsername->setText(map[QString("tokenUsername")]); |
|
|
|
|
ntUsername->setText(map[QString("ntUsername")]); |
|
|
|
|
ntPassword->setText(map[QString("ntPassword")]); |
|
|
|
|
authSystemLE->setText(map[QString("authSystem")]); |
|
|
|
|
if (tokenUsername->text().length() > 0) { |
|
|
|
|
rememberCredentials->setChecked(true); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
std::cout << "Error loading from wallet, is it populated?" << std::endl; |
|
|
|
|
QMap<QString, QString> map; |
|
|
|
|
if (wallet->readMap("http://rsa-vdi.nightmare.haus/#authInfo", map) == 0) { |
|
|
|
|
domainLE->setText(map[QString("domain")]); |
|
|
|
|
tokenUsername->setText(map[QString("tokenUsername")]); |
|
|
|
|
ntUsername->setText(map[QString("ntUsername")]); |
|
|
|
|
ntPassword->setText(map[QString("ntPassword")]); |
|
|
|
|
authSystemLE->setText(map[QString("authSystem")]); |
|
|
|
|
if (tokenUsername->text().length() > 0) { |
|
|
|
|
rememberCredentials->setChecked(true); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
std::cout << "Error loading from wallet, is it populated?" << std::endl; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
// save login information to kwallet using walletOpen() or die
|
|
|
|
|
void saveLogin() { |
|
|
|
@ -101,17 +98,16 @@ void saveLogin() {
@@ -101,17 +98,16 @@ void saveLogin() {
|
|
|
|
|
} catch (int e) { |
|
|
|
|
exit(-1); |
|
|
|
|
} |
|
|
|
|
QMap<QString, QString> map; |
|
|
|
|
map[QString("domain")] = domainLE->text(); |
|
|
|
|
map[QString("tokenUsername")] = tokenUsername->text(); |
|
|
|
|
map[QString("ntUsername")] = ntUsername->text(); |
|
|
|
|
map[QString("ntPassword")] = ntPassword->text(); |
|
|
|
|
map[QString("authSystem")] = authSystemLE->text(); |
|
|
|
|
|
|
|
|
|
if (!wallet->writeMap("http://rsa-vdi.nightmare.haus/#authInfo", map)) { |
|
|
|
|
std::cout << "Error writing to Wallet!" << std::endl; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QMap<QString, QString> map; |
|
|
|
|
map[QString("domain")] = domainLE->text(); |
|
|
|
|
map[QString("tokenUsername")] = tokenUsername->text(); |
|
|
|
|
map[QString("ntUsername")] = ntUsername->text(); |
|
|
|
|
map[QString("ntPassword")] = ntPassword->text(); |
|
|
|
|
map[QString("authSystem")] = authSystemLE->text(); |
|
|
|
|
|
|
|
|
|
if (!wallet->writeMap("http://rsa-vdi.nightmare.haus/#authInfo", map)) { |
|
|
|
|
std::cout << "Error writing to Wallet!" << std::endl; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -133,37 +129,36 @@ void tryLogin() {
@@ -133,37 +129,36 @@ void tryLogin() {
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// -q, --nonInteractive Connect automatically if enough values are given on the command line.
|
|
|
|
|
QString command = "vmware-view -q"; |
|
|
|
|
if (domainLE->text().length() > 0) { |
|
|
|
|
// -s, --serverURL=<broker URL> Specify connection broker.
|
|
|
|
|
command += " -s \'" + domainLE->text() + "\'"; |
|
|
|
|
} |
|
|
|
|
if (authSystemLE->text().length() > 0) { |
|
|
|
|
// -d, --domainName=<domain name> Specify domain for password authentication
|
|
|
|
|
command += " -d \'" + authSystemLE->text() + "\'"; |
|
|
|
|
} |
|
|
|
|
if (tokenUsername->text().length() > 0) { |
|
|
|
|
// -t, --tokenUserName=<token user name> Specify user name for RSA or Radius authentication.
|
|
|
|
|
command += " -t \'" + tokenUsername->text() + "\'"; |
|
|
|
|
} |
|
|
|
|
if (tokenCode->text().length() > 0 ) { |
|
|
|
|
// -c, --passcode=<passcode> Specify passcode for RSA or Radius authentication.
|
|
|
|
|
command += " -c \'" + tokenCode->text() + "\'"; |
|
|
|
|
} |
|
|
|
|
if (ntUsername->text().length() > 0) { |
|
|
|
|
// -u, --userName=<user name> Specify user name for password authentication.
|
|
|
|
|
command += " -u \'" + ntUsername->text() + "\'"; |
|
|
|
|
} |
|
|
|
|
if (ntPassword->text().length() > 0) { |
|
|
|
|
//-p, --password=<password> Specify password for password authentication.
|
|
|
|
|
command += " -p \'" + ntPassword->text() + "\'"; |
|
|
|
|
} |
|
|
|
|
if (debug) { |
|
|
|
|
std::cout << command.toStdString() << std::endl; |
|
|
|
|
} else { |
|
|
|
|
system(command.toStdString().c_str()); |
|
|
|
|
} |
|
|
|
|
// -q, --nonInteractive Connect automatically if enough values are given on the command line.
|
|
|
|
|
QString command = "vmware-view -q"; |
|
|
|
|
if (domainLE->text().length() > 0) { |
|
|
|
|
// -s, --serverURL=<broker URL> Specify connection broker.
|
|
|
|
|
command += " -s \'" + domainLE->text() + "\'"; |
|
|
|
|
} |
|
|
|
|
if (authSystemLE->text().length() > 0) { |
|
|
|
|
// -d, --domainName=<domain name> Specify domain for password authentication
|
|
|
|
|
command += " -d \'" + authSystemLE->text() + "\'"; |
|
|
|
|
} |
|
|
|
|
if (tokenUsername->text().length() > 0) { |
|
|
|
|
// -t, --tokenUserName=<token user name> Specify user name for RSA or Radius authentication.
|
|
|
|
|
command += " -t \'" + tokenUsername->text() + "\'"; |
|
|
|
|
} |
|
|
|
|
if (tokenCode->text().length() > 0 ) { |
|
|
|
|
// -c, --passcode=<passcode> Specify passcode for RSA or Radius authentication.
|
|
|
|
|
command += " -c \'" + tokenCode->text() + "\'"; |
|
|
|
|
} |
|
|
|
|
if (ntUsername->text().length() > 0) { |
|
|
|
|
// -u, --userName=<user name> Specify user name for password authentication.
|
|
|
|
|
command += " -u \'" + ntUsername->text() + "\'"; |
|
|
|
|
} |
|
|
|
|
if (ntPassword->text().length() > 0) { |
|
|
|
|
//-p, --password=<password> Specify password for password authentication.
|
|
|
|
|
command += " -p \'" + ntPassword->text() + "\'"; |
|
|
|
|
} |
|
|
|
|
if (debug) { |
|
|
|
|
std::cout << command.toStdString() << std::endl; |
|
|
|
|
} else { |
|
|
|
|
system(command.toStdString().c_str()); |
|
|
|
|
} |
|
|
|
|
exit(0); |
|
|
|
|
} |