private void QDAddUser_Load(object sender, EventArgs e) { if (EditID != null) { using (WrapMySQL mysql = new WrapMySQL(DBData)) { if (!QDLib.ManagedDBOpen(mysql)) { QDLib.DBOpenFailed(); return; } Username = mysql.ExecuteScalar <string>("SELECT Username FROM qd_users WHERE ID = ?", EditID); DisplayName = mysql.ExecuteScalar <string>("SELECT Name FROM qd_users WHERE ID = ?", EditID); mysql.Close(); txbUsername.Text = Username; txbDisplayName.Text = DisplayName; } this.Text = "Edit User"; btnSubmit.Text = "Save Changes"; lblRegisterTitle.Text = "Update user-data"; lblPassword.Text = "New Password"; } }
private void btnRunSetup_Click(object sender, EventArgs e) { if (QDLib.RunQDriveSetup()) { this.Close(); } }
private void btnDeleteAccount_Click(object sender, EventArgs e) { if (lbxUserList.SelectedIndex != -1) { if (MessageBox.Show("Do you really want to delete the selected user?", "Delete User", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes) { if (!QDLib.ManagedDBOpen(mysql)) { QDLib.DBOpenFailed(); return; } mysql.TransactionBegin(); try { mysql.ExecuteNonQuery("DELETE FROM qd_users WHERE ID = ?", lbxUserList.SelectedValue.ToString()); mysql.ExecuteNonQuery("DELETE FROM qd_assigns WHERE UserID = ?", lbxUserList.SelectedValue.ToString()); mysql.TransactionCommit(); } catch { mysql.TransactionRollback(); } mysql.Close(); UpdateUsersSettings(); } } }
public QDriveAdminConsole() { InitializeComponent(); this.Style.Border = new Pen(Color.FromArgb(1, 115, 199), 2); this.Style.InactiveBorder = new Pen(Color.FromArgb(1, 115, 199), 2); panels.Add(pnlLogin); panels.Add(pnlSettings); panels.Add(pnlLoading); panels.Add(pnlLocal); panels.Add(pnlNotConfigured); QDLib.AlignPanels(this, panels, 716, 440); pbxQDLogo.Image = Properties.Resources.QDriveProgamFavicon; pbxQDLogoLocal.Image = Properties.Resources.QDriveProgamFavicon; pbxQDLogoLoading.Image = Properties.Resources.QDriveProgamFavicon; pbxLogoNotConfigured.Image = Properties.Resources.QDriveProgamFavicon; lblVersion.Text = "Version " + QDInfo.QDVersion; pnlLoading.BringToFront(); txbMasterPassword.Focus(); }
private void btnRegisterNewUser_Click(object sender, EventArgs e) { QDAddUser addUser = new QDAddUser() { DBData = dbData }; if (addUser.ShowDialog() == DialogResult.OK) { try { mysql.ExecuteNonQueryACon("INSERT INTO qd_users (ID, Name, Username, Password) VALUES (?,?,?,?)", Guid.NewGuid(), addUser.DisplayName, addUser.Username, QDLib.HashPassword(addUser.Password) ); } catch { MessageBox.Show("Could not add new user. Please try again later.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } UpdateUsersSettings(); } }
private void btnTestConnection_Click(object sender, EventArgs e) => QDLib.TestConnection(new WrapMySQLData() { Hostname = txbHostname.Text, Database = txbName.Text, Username = txbUsername.Text, Password = txbPassword.Text, Pooling = false });
private void nfiQDriveMenu_LogOff_Click(object sender, EventArgs e) { QDLib.DisconnectAllDrives(driveList); if (!localConnection) { QDLib.LogUserConnection(UserID, QDLogAction.UserLoggedOut, dbData, logUserActions); QDLib.LogUserConnection(UserID, QDLogAction.QDDrivesDisconnect, dbData, logUserActions); } }
private void LoadAllData() { try { using (WrapSQLite sqlite = new WrapSQLite(QDInfo.ConfigFile)) { if (!QDLib.ManagedDBOpen(sqlite)) { QDLib.DBOpenFailed(); return; } bool localConnection = !Convert.ToBoolean(sqlite.ExecuteScalar <short>("SELECT QDValue FROM qd_info WHERE QDKey = ?", QDInfo.DBL.IsOnlineLinked)); sqlite.Close(); if (localConnection) { pnlLocal.BringToFront(); return; } if (!QDLib.ManagedDBOpen(sqlite)) { QDLib.DBOpenFailed(); return; } dbData.Hostname = Cipher.Decrypt(sqlite.ExecuteScalar <string>("SELECT QDValue FROM qd_info WHERE QDKey = ?", QDInfo.DBL.DBHost), QDInfo.LocalCipherKey); dbData.Username = Cipher.Decrypt(sqlite.ExecuteScalar <string>("SELECT QDValue FROM qd_info WHERE QDKey = ?", QDInfo.DBL.DBUsername), QDInfo.LocalCipherKey); dbData.Password = Cipher.Decrypt(sqlite.ExecuteScalar <string>("SELECT QDValue FROM qd_info WHERE QDKey = ?", QDInfo.DBL.DBPassword), QDInfo.LocalCipherKey); dbData.Database = Cipher.Decrypt(sqlite.ExecuteScalar <string>("SELECT QDValue FROM qd_info WHERE QDKey = ?", QDInfo.DBL.DBName), QDInfo.LocalCipherKey); sqlite.Close(); } mysql = new WrapMySQL(dbData); if (!QDLib.ManagedDBOpen(mysql)) { QDLib.DBOpenFailed(); return; } userCanToggleKeepLoggedIn = Convert.ToBoolean(mysql.ExecuteScalar <short>("SELECT QDValue FROM qd_info WHERE QDKey = ?", QDInfo.DBO.UserCanToggleKeepLoggedIn)); userCanAddPrivateDrive = Convert.ToBoolean(mysql.ExecuteScalar <short>("SELECT QDValue FROM qd_info WHERE QDKey = ?", QDInfo.DBO.UserCanAddPrivateDrive)); userCanAddPublicDrive = Convert.ToBoolean(mysql.ExecuteScalar <short>("SELECT QDValue FROM qd_info WHERE QDKey = ?", QDInfo.DBO.UserCanAddPublicDrive)); userCanSelfRegister = Convert.ToBoolean(mysql.ExecuteScalar <short>("SELECT QDValue FROM qd_info WHERE QDKey = ?", QDInfo.DBO.UserCanSelfRegister)); useLoginAsDriveAuth = Convert.ToBoolean(mysql.ExecuteScalar <short>("SELECT QDValue FROM qd_info WHERE QDKey = ?", QDInfo.DBO.UseLoginAsDriveAuthentication)); forceLoginDriveAuth = Convert.ToBoolean(mysql.ExecuteScalar <short>("SELECT QDValue FROM qd_info WHERE QDKey = ?", QDInfo.DBO.ForceLoginAsDriveAuthentication)); disconnectDrivesAtShutdown = Convert.ToBoolean(mysql.ExecuteScalar <short>("SELECT QDValue FROM qd_info WHERE QDKey = ?", QDInfo.DBO.DisconnectDrivesAtShutdown)); logUserActions = Convert.ToBoolean(mysql.ExecuteScalar <short>("SELECT QDValue FROM qd_info WHERE QDKey = ?", QDInfo.DBO.LogUserActions)); userCanChangeManagerSettings = Convert.ToBoolean(mysql.ExecuteScalar <short>("SELECT QDValue FROM qd_info WHERE QDKey = ?", QDInfo.DBO.UserCanChangeManagerSettings)); defaultDomain = mysql.ExecuteScalar <string>("SELECT QDValue FROM qd_info WHERE QDKey = ?", QDInfo.DBO.DefaultDomain); masterPassword = mysql.ExecuteScalar <string>("SELECT QDValue FROM qd_info WHERE QDKey = ?", QDInfo.DBO.MasterPassword); mysql.Close(); } catch { MessageBox.Show("An error occured whilst trying to connect to the online-database.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); this.Close(); } }
private void nfiQDriveMenu_Reconnect_Click(object sender, EventArgs e) { if (localConnection) { QDLib.ConnectQDDrives("", "", dbData, logUserActions, true); } else { QDLib.ConnectQDDrives(UserID, Password, dbData, logUserActions, true); } }
private void Submit() { if (!QDLib.VerifyMasterPassword(txbMasterPassword.Text, DBData)) { MessageBox.Show("Master-Password is not valid. Please enter the corrent Master-Password, which has been set when the database was first initialised.", "Invalid Master-Password", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } this.DialogResult = DialogResult.OK; this.Close(); }
private void QDrive_FormClosing(object sender, FormClosingEventArgs e) { if (!localConnection && disconnectAtShutdown) { QDLib.DisconnectAllDrives(); if (!localConnection) { QDLib.LogUserConnection(UserID, QDLogAction.QDDrivesDisconnect, dbData, logUserActions); QDLib.LogUserConnection(UserID, QDLogAction.QDSystemAppClosed, dbData, logUserActions); } } }
private void UpdateInfoData() { if (dgvActionBrowser.Rows.Count <= 0) { return; } if (dgvActionBrowser.SelectedRows.Count <= 0) { return; } string conlogID = dgvActionBrowser.SelectedRows[0].Cells["ID"].Value.ToString(); string sqlQuery = $"SELECT *, " + $"(SELECT COUNT(*) FROM qd_assigns WHERE qd_assigns.UserID = qd_conlog.UserID) AS AssignedDriveCount, " + $"(SELECT COUNT(*) FROM (SELECT * FROM qd_conlog GROUP BY qd_conlog.UserID) AS TMP WHERE TMP.DeviceID = qd_devices.ID) AS UserCount " + $"FROM qd_conlog " + $"INNER JOIN qd_users ON qd_conlog.UserID = qd_users.ID " + $"INNER JOIN qd_devices ON qd_conlog.DeviceID = qd_devices.ID " + $"WHERE qd_conlog.ID = ?"; using (WrapMySQL mysql = new WrapMySQL(DBData)) { if (!QDLib.ManagedDBOpen(mysql)) { QDLib.DBOpenFailed(); return; } using (MySqlDataReader reader = (MySqlDataReader)mysql.ExecuteQuery(sqlQuery, conlogID)) { while (reader.Read()) { lblDateTime.Text = Convert.ToString(reader["LogTime"]); lblActionType.Text = Convert.ToString((QDLogAction)Convert.ToInt32(reader["LogAction"])); lblActionDescription.Text = QDLib.GetLogDescriptionFromAction((QDLogAction)Convert.ToInt32(reader["LogAction"])); lblDisplayName.Text = Convert.ToString(reader["Name"]); lblUsername.Text = Convert.ToString(reader["Username"]); lblAssignedDrives.Text = Convert.ToString(reader["AssignedDriveCount"]); lblDeviceName.Text = Convert.ToString(reader["DeviceName"]); lblLogonName.Text = Convert.ToString(reader["LogonName"]); lblMacAddress.Text = Convert.ToString(reader["MacAddress"]); lblUserCount.Text = QDLib.UserCountAtDevice(Convert.ToString(reader["DeviceID"]), DBData).ToString(); } } mysql.Close(); } }
private void tmrDriveCheck_Tick(object sender, EventArgs e) { if (localConnection) { QDLib.ConnectQDDrives("", "", dbData, logUserActions, false, null, true); } else { if (string.IsNullOrEmpty(UserID)) { LoadQDData(); } QDLib.ConnectQDDrives(UserID, Password, dbData, logUserActions, false, null, true); } }
private void QDrive_Load(object sender, EventArgs e) { // Check if the setup has been completed yet if (!QDLib.IsQDConfigured()) { QDLib.RunQDriveSetup(); this.Close(); } // Load QD-Data LoadQDData(); // If always-prompt-password is set if (promptPassword) { QDriveManager.QDriveManager managerLogin = new QDriveManager.QDriveManager() { AutostartLogin = true }; if (managerLogin.ShowDialog() != DialogResult.OK) { this.Close(); } Username = managerLogin.uUsername; Password = managerLogin.uPassword; UserID = managerLogin.userID; } driveList = QDLib.CreateDriveList(localConnection, UserID, Password, dbData); if (localConnection) { pbxQDriveSplash.Image = Properties.Resources.QDSplashLocal; QDLib.ConnectQDDrives("", "", dbData, logUserActions, true, driveList); } else { pbxQDriveSplash.Image = Properties.Resources.QDSplashOnline; QDLib.ConnectQDDrives(UserID, Password, dbData, logUserActions, true, driveList); if (!localConnection) { QDLib.LogUserConnection(UserID, QDLogAction.QDSystemAutostartFinished, dbData, logUserActions); } } }
private void QDriveAdminConsole_Load(object sender, EventArgs e) { if (!QDLib.IsQDConfigured()) { pnlNotConfigured.BringToFront(); } else { LoadAllData(); UpdateAll(); pnlLogin.BringToFront(); txbMasterPassword.Focus(); } }
private void Submit() { QDLoader qdLoader = new QDLoader(); qdLoader.Show(); if (masterPassword == QDLib.HashPassword(txbMasterPassword.Text)) { pnlSettings.BringToFront(); } else { MessageBox.Show("Password not valid.", "Invalid Password", MessageBoxButtons.OK, MessageBoxIcon.Warning); } qdLoader.Close(); }
private void EditSelectedDrive() { if (lbxOnlineDrives.SelectedIndex != -1) { string driveID = lbxOnlineDrives.SelectedValue.ToString(); if (!QDLib.ManagedDBOpen(mysql)) { QDLib.DBOpenFailed(); return; } string drivePath = mysql.ExecuteScalar <string>("SELECT LocalPath FROM qd_drives WHERE ID = ?", driveID); string defaultName = mysql.ExecuteScalar <string>("SELECT DefaultName FROM qd_drives WHERE ID = ?", driveID); string defaultLetter = mysql.ExecuteScalar <string>("SELECT DefaultDriveLetter FROM qd_drives WHERE ID = ?", driveID); bool canBeDeployed = Convert.ToBoolean(mysql.ExecuteScalar <short>("SELECT IsDeployable FROM qd_drives WHERE ID = ?", driveID)); mysql.Close(); QDAddPublicDrive editDrive = new QDAddPublicDrive { EditMode = true, DrivePath = drivePath, DriveName = defaultName, DriveLetter = defaultLetter, CanBeDeployed = canBeDeployed }; if (editDrive.ShowDialog() == DialogResult.OK) { try { mysql.ExecuteNonQueryACon("UPDATE qd_drives SET DefaultName = ?, DefaultDriveLetter = ?, LocalPath = ?, IsDeployable = ? WHERE ID = ?", editDrive.DriveName, editDrive.DriveLetter, editDrive.DrivePath, editDrive.CanBeDeployed, driveID ); } catch { MessageBox.Show("Could not update drive data. Please try again later.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } UpdateOnlineDrives(); } } }
private void Submit() { if (!NoOldPassword && OldPassword != txbOldPassword.Text) { MessageBox.Show("Old password is not valid.", "Invalid password", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (!QDLib.ValidatePasswords(txbNewPassword.Text, txbConfirmNewPassword.Text)) { return; } NewPassword = txbNewPassword.Text; this.DialogResult = DialogResult.OK; this.Close(); }
private void Submit() { dbConDat = new WrapMySQLData() { Hostname = txbHostname.Text, Database = txbName.Text, Username = txbUsername.Text, Password = txbPassword.Text, Pooling = false }; if (QDLib.TestConnection(dbConDat, false)) { this.DialogResult = DialogResult.Cancel; this.Close(); } }
private void Submit() { if (EditID == null || (EditID != null && !string.IsNullOrEmpty(txbPassword.Text) && !string.IsNullOrEmpty(txbConfirmPassword.Text))) { if (!QDLib.ValidatePasswords(txbPassword.Text, txbConfirmPassword.Text)) { return; } } if (string.IsNullOrEmpty(txbDisplayName.Text)) { MessageBox.Show("Please enter a valid display-name.", "Invalid Display-Name", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (string.IsNullOrEmpty(txbUsername.Text)) { MessageBox.Show("Please enter a valid username.", "Invalid Username", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (EditID == null || (EditID != null && Username != txbUsername.Text)) { using (WrapMySQL mysql = new WrapMySQL(DBData)) { if (mysql.ExecuteScalarACon <int>("SELECT COUNT(*) FROM qd_users WHERE Username = ?", txbUsername.Text) != 0) { MessageBox.Show("Username already in use. Please choose another username", "Username already in use", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } } DisplayName = txbDisplayName.Text; Username = txbUsername.Text; if (EditID == null || (EditID != null && !string.IsNullOrEmpty(txbPassword.Text) && !string.IsNullOrEmpty(txbConfirmPassword.Text))) { Password = txbPassword.Text; } this.DialogResult = DialogResult.OK; this.Close(); }
public QDriveSetup() { InitializeComponent(); // Add Panels to panel-collection panels.Add(pnlS0Welcome); panels.Add(pnlS1ConnectionType); panels.Add(pnlS2LocalConnection); panels.Add(pnlS2OnlineConnectionA); panels.Add(pnlS2OnlineConnectionB); panels.Add(pnlS3Finish); panels.Add(pnlS3Error); QDLib.AlignPanels(this, panels, 680, 500); this.Style.Border = new Pen(Color.FromArgb(77, 216, 255), 2); this.Style.InactiveBorder = new Pen(Color.FromArgb(77, 216, 255), 2); }
private void SubmitSB2A() { QDLoader qdLoader = new QDLoader(); qdLoader.Show(); onlineDBConDat = new WrapMySQLData() { Hostname = txbSB2DBHostname.Text, Database = txbSB2DBName.Text, Username = txbSB2DBUsername.Text, Password = txbSB2DBPassword.Text, Pooling = false }; if (QDLib.TestConnection(onlineDBConDat, false)) { onlineAlreadyConfigured = IsConfiguredDB(); rbnSB2ExistingDB.Enabled = onlineAlreadyConfigured; txbSB2ExistingDBPassword.Enabled = onlineAlreadyConfigured; lblSB2AExistingMasterPW.Enabled = onlineAlreadyConfigured; if (onlineAlreadyConfigured) { rbnSB2ExistingDB.Checked = true; } else { rbnSB2NewDB.Checked = true; } pnlS2OnlineConnectionB.BringToFront(); } else { qdLoader.Close(); return; } rbnSB2ExistingDB.Focus(); qdLoader.Close(); }
private void EditSelectedUser() { if (lbxUserList.SelectedIndex != -1) { QDAddUser editUser = new QDAddUser { EditID = lbxUserList.SelectedValue.ToString(), DBData = dbData }; if (editUser.ShowDialog() == DialogResult.OK) { try { if (string.IsNullOrEmpty(editUser.Password)) { mysql.ExecuteNonQueryACon("UPDATE qd_users SET Name = ?, Username = ? WHERE ID = ?", editUser.DisplayName, editUser.Username, editUser.EditID ); } else { mysql.ExecuteNonQueryACon("UPDATE qd_users SET Name = ?, Username = ?, Password = ? WHERE ID = ?", editUser.DisplayName, editUser.Username, QDLib.HashPassword(editUser.Password), editUser.EditID ); } } catch { MessageBox.Show("Could not update user data. Please try again later.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } UpdateUsersSettings(); } } }
private void lbxDevices_SelectedIndexChanged(object sender, EventArgs e) { if (!QDLib.ManagedDBOpen(mysql)) { QDLib.DBOpenFailed(); return; } txbDeviceMac.Text = mysql.ExecuteScalar <string>("SELECT MacAddress FROM qd_devices WHERE ID = ?", lbxDevices.SelectedValue); txbDeviceName.Text = mysql.ExecuteScalar <string>("SELECT DeviceName FROM qd_devices WHERE ID = ?", lbxDevices.SelectedValue); txbLogonName.Text = mysql.ExecuteScalar <string>("SELECT LogonName FROM qd_devices WHERE ID = ?", lbxDevices.SelectedValue); mysql.Close(); int userCount = QDLib.UserCountAtDevice(lbxDevices.SelectedValue.ToString(), dbData); if (userCount == 1) { lblDeviceUserCount.Text = $"{userCount} User logged into Q-Drive on this{Environment.NewLine}machine / account"; } else { lblDeviceUserCount.Text = $"{userCount} Users logged into Q-Drive on this{Environment.NewLine}machine / account"; } }
private void SubmitSA2() { QDLoader qdLoader = new QDLoader(); qdLoader.Show(); alwaysPromptPassword = chbSA2PromptPassword.Checked; if (alwaysPromptPassword) { // Check if both passwords are valid if (QDLib.ValidatePasswords(txbSA2Password.Text, txbSA2ConfirmPassword.Text)) { localPassword = txbSA2Password.Text; } else { qdLoader.Close(); return; } } // (Try to) save the QD-Config and create DBs SaveConfiguration(localConnection); // Check if an error occured and show error-page if (!errorEncountered) { pnlS3Finish.BringToFront(); } else { pnlS3Error.BringToFront(); btnS3ErrorClose.Focus(); } qdLoader.Close(); }
private void btnRemoveOnlineDrive_Click(object sender, EventArgs e) { if (lbxOnlineDrives.SelectedIndex != -1) { bool success = false; if (MessageBox.Show("Do you really want to remove the selected drive?", "Remove Drive", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes) { if (!QDLib.ManagedDBOpen(mysql)) { QDLib.DBOpenFailed(); return; } mysql.TransactionBegin(); try { mysql.ExecuteNonQuery("DELETE FROM qd_drives WHERE ID = ?", lbxOnlineDrives.SelectedValue.ToString()); mysql.ExecuteNonQuery("DELETE FROM qd_assigns WHERE DriveID = ?", lbxOnlineDrives.SelectedValue.ToString()); success = true; mysql.TransactionCommit(); } catch { mysql.TransactionRollback(); } mysql.Close(); if (!success) { MessageBox.Show("Could not remove drive. Please try again later.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } UpdateOnlineDrives(); } } }
private bool SaveChanges() { QDLoader qdLoader = new QDLoader(); qdLoader.Show(); bool successOnline = false; bool successLocal = false; if (!QDLib.ManagedDBOpen(mysql)) { QDLib.DBOpenFailed(); return(false); } mysql.TransactionBegin(); try { mysql.ExecuteNonQuery("UPDATE qd_info SET QDValue = ? WHERE QDKey = ?", tglUserCanToggleKeepLoggedIn.ToggleState == ToggleButtonState.Active, QDInfo.DBO.UserCanToggleKeepLoggedIn); mysql.ExecuteNonQuery("UPDATE qd_info SET QDValue = ? WHERE QDKey = ?", tglUserCanSelfRegister.ToggleState == ToggleButtonState.Active, QDInfo.DBO.UserCanSelfRegister); mysql.ExecuteNonQuery("UPDATE qd_info SET QDValue = ? WHERE QDKey = ?", tglUserCanAddPublicDrives.ToggleState == ToggleButtonState.Active, QDInfo.DBO.UserCanAddPublicDrive); mysql.ExecuteNonQuery("UPDATE qd_info SET QDValue = ? WHERE QDKey = ?", tglUserCanAddPrivateDrives.ToggleState == ToggleButtonState.Active, QDInfo.DBO.UserCanAddPrivateDrive); mysql.ExecuteNonQuery("UPDATE qd_info SET QDValue = ? WHERE QDKey = ?", tglUseLoginAsDriveAuthentication.ToggleState == ToggleButtonState.Active, QDInfo.DBO.UseLoginAsDriveAuthentication); mysql.ExecuteNonQuery("UPDATE qd_info SET QDValue = ? WHERE QDKey = ?", tglForceLoginAsDriveAuthentication.ToggleState == ToggleButtonState.Active, QDInfo.DBO.ForceLoginAsDriveAuthentication); mysql.ExecuteNonQuery("UPDATE qd_info SET QDValue = ? WHERE QDKey = ?", tglDisconnectDrivesAtShutdown.ToggleState == ToggleButtonState.Active, QDInfo.DBO.DisconnectDrivesAtShutdown); mysql.ExecuteNonQuery("UPDATE qd_info SET QDValue = ? WHERE QDKey = ?", tglLogUserActions.ToggleState == ToggleButtonState.Active, QDInfo.DBO.LogUserActions); mysql.ExecuteNonQuery("UPDATE qd_info SET QDValue = ? WHERE QDKey = ?", tglUserCanChangeManagerSettings.ToggleState == ToggleButtonState.Active, QDInfo.DBO.UserCanChangeManagerSettings); mysql.ExecuteNonQuery("UPDATE qd_info SET QDValue = ? WHERE QDKey = ?", txbDefaultDomain.Text, QDInfo.DBO.DefaultDomain); mysql.TransactionCommit(); successOnline = true; } catch { mysql.TransactionRollback(); } mysql.Close(); WrapMySQLData newDBConnection = new WrapMySQLData() { Hostname = txbDBHostname.Text, Database = txbDBDatabase.Text, Username = txbDBUsername.Text, Password = txbDBPassword.Text, Pooling = false }; using (WrapSQLite sqlite = new WrapSQLite(QDInfo.ConfigFile)) { if (QDLib.TestConnection(newDBConnection, false)) { if (!QDLib.ManagedDBOpen(sqlite)) { QDLib.DBOpenFailed(); return(false); } sqlite.TransactionBegin(); try { sqlite.ExecuteNonQuery("UPDATE qd_info SET QDValue = ? WHERE QDKey = ?", Cipher.Encrypt(newDBConnection.Hostname, QDInfo.LocalCipherKey), QDInfo.DBL.DBHost); sqlite.ExecuteNonQuery("UPDATE qd_info SET QDValue = ? WHERE QDKey = ?", Cipher.Encrypt(newDBConnection.Database, QDInfo.LocalCipherKey), QDInfo.DBL.DBName); sqlite.ExecuteNonQuery("UPDATE qd_info SET QDValue = ? WHERE QDKey = ?", Cipher.Encrypt(newDBConnection.Username, QDInfo.LocalCipherKey), QDInfo.DBL.DBUsername); sqlite.ExecuteNonQuery("UPDATE qd_info SET QDValue = ? WHERE QDKey = ?", Cipher.Encrypt(newDBConnection.Password, QDInfo.LocalCipherKey), QDInfo.DBL.DBPassword); sqlite.TransactionCommit(); successLocal = true; } catch { sqlite.TransactionRollback(); } sqlite.Close(); } } if (!successOnline || !successLocal) { if (MessageBox.Show("Could not save the changes made. Please check your MySQL-Connection and try again. \r\n\r\nDo you want to close the admin-console anyway?", "Could not save settins", MessageBoxButtons.YesNo, MessageBoxIcon.Error) == DialogResult.Yes) { successOnline = true; } } qdLoader.Close(); return(successOnline && successLocal); }
private int LoadQDData() { // Load local Data using (WrapSQLite sqlite = new WrapSQLite(QDInfo.ConfigFile)) { if (!QDLib.ManagedDBOpen(sqlite)) { QDLib.DBOpenFailed(); return(-1); } localConnection = !Convert.ToBoolean(sqlite.ExecuteScalar <short>("SELECT QDValue FROM qd_info WHERE QDKey = ?", QDInfo.DBL.IsOnlineLinked)); promptPassword = Convert.ToBoolean(sqlite.ExecuteScalar <short>("SELECT QDValue FROM qd_info WHERE QDKey = ?", QDInfo.DBL.AlwaysPromptPassword)); Username = sqlite.ExecuteScalar <string>("SELECT QDValue FROM qd_info WHERE QDKey = ?", QDInfo.DBL.DefaultUsername); Password = sqlite.ExecuteScalar <string>("SELECT QDValue FROM qd_info WHERE QDKey = ?", QDInfo.DBL.DefaultPassword); dbData.Hostname = Cipher.Decrypt(sqlite.ExecuteScalar <string>("SELECT QDValue FROM qd_info WHERE QDKey = ?", QDInfo.DBL.DBHost), QDInfo.LocalCipherKey); dbData.Username = Cipher.Decrypt(sqlite.ExecuteScalar <string>("SELECT QDValue FROM qd_info WHERE QDKey = ?", QDInfo.DBL.DBUsername), QDInfo.LocalCipherKey); dbData.Password = Cipher.Decrypt(sqlite.ExecuteScalar <string>("SELECT QDValue FROM qd_info WHERE QDKey = ?", QDInfo.DBL.DBPassword), QDInfo.LocalCipherKey); dbData.Database = Cipher.Decrypt(sqlite.ExecuteScalar <string>("SELECT QDValue FROM qd_info WHERE QDKey = ?", QDInfo.DBL.DBName), QDInfo.LocalCipherKey); sqlite.Close(); if (!string.IsNullOrEmpty(Password)) { Password = Cipher.Decrypt(Password, QDInfo.LocalCipherKey); } } try { using (WrapSQLite sqlite = new WrapSQLite(QDInfo.ConfigFile)) { sqlite.Open(); sqlite.Close(); } } catch { return(3); } // Load Online Data if (!localConnection) { try { using (WrapMySQL mysql = new WrapMySQL(dbData)) { if (!QDLib.ManagedDBOpen(mysql)) { QDLib.DBOpenFailed(); return(-1); } disconnectAtShutdown = Convert.ToBoolean(mysql.ExecuteScalar <short>("SELECT QDValue FROM qd_info WHERE QDKey = ?", QDInfo.DBO.DisconnectDrivesAtShutdown)); logUserActions = Convert.ToBoolean(mysql.ExecuteScalar <short>("SELECT QDValue FROM qd_info WHERE QDKey = ?", QDInfo.DBO.LogUserActions)); mysql.Close(); } } catch { return(2); } } if (!promptPassword) { QDLib.VerifyPassword(localConnection, Username, Password, out UserID, dbData); } return(0); }
private void UpdateDatagrid() { QDLoader qdLoader = new QDLoader(); qdLoader.Show(); BrowserSort sort = BrowserSort.None; if (!QDLib.ManagedDBOpen(mysql)) { QDLib.DBOpenFailed(); qdLoader.Close(); return; } totalEntryCount = mysql.ExecuteScalar <int>("SELECT COUNT(*) FROM qd_conlog"); bool abort = false; if (string.IsNullOrEmpty(SelectedObjectID)) { sort = BrowserSort.AllEntries; } else if (SelectedObjectID.StartsWith("ACT=")) { sort = BrowserSort.SortedByActionType; } else if (mysql.ExecuteScalar <int>("SELECT COUNT(*) FROM qd_users WHERE ID = ?", SelectedObjectID) != 0) { sort = BrowserSort.SortedByUsers; } else if (mysql.ExecuteScalar <int>("SELECT COUNT(*) FROM qd_devices WHERE ID = ?", SelectedObjectID) != 0) { sort = BrowserSort.SortedByDevice; } else { abort = true; } mysql.Close(); if (abort) { qdLoader.Close(); return; } switch (cbxEntryLimit.SelectedIndex) { case 0: listLimitSize = 50; break; case 1: listLimitSize = 100; break; case 2: listLimitSize = 250; break; case 3: listLimitSize = 500; break; case 4: listLimitSize = 1000; break; case 5: listLimitSize = 5000; break; default: listLimitSize = -1; break; } if (listOffset <= 0 || listLimitSize == -1) { btnJumpToFirst.Enabled = false; btnJumpToFirst.BackColor = Color.DarkGray; } else { btnJumpToFirst.Enabled = true; btnJumpToFirst.BackColor = Color.Gainsboro; } if (listOffset <= 0 || listLimitSize == -1) { btnJumpBack.Enabled = false; btnJumpBack.BackColor = Color.DarkGray; } else { btnJumpBack.Enabled = true; btnJumpBack.BackColor = Color.Gainsboro; } if (listOffset + listLimitSize > totalEntryCount || listLimitSize == -1) { btnJumpToNext.Enabled = false; btnJumpToNext.BackColor = Color.DarkGray; } else { btnJumpToNext.Enabled = true; btnJumpToNext.BackColor = Color.Gainsboro; } maxOffset = 0; while (listLimitSize + maxOffset < totalEntryCount) { maxOffset += listLimitSize; } if (listOffset >= maxOffset) { btnJumpToLast.Enabled = false; btnJumpToLast.BackColor = Color.DarkGray; } else { btnJumpToLast.Enabled = true; btnJumpToLast.BackColor = Color.Gainsboro; } string limitString; if (listLimitSize == -1) { limitString = ""; } else { limitString = $"LIMIT {listOffset},{listLimitSize}"; } string sqlQuery = ""; switch (sort) { case BrowserSort.AllEntries: sqlQuery = $"SELECT " + $"*, " + $"qd_conlog.ID AS MainID, " + $"CONCAT(qd_users.Name, ' (', qd_users.Username, ')') AS UserDisplay, " + $"CONCAT(qd_devices.LogonName, ' @ ', qd_devices.DeviceName) AS DeviceDisplay " + $"FROM qd_conlog " + $"INNER JOIN qd_users ON qd_conlog.UserID = qd_users.ID " + $"INNER JOIN qd_devices ON qd_conlog.DeviceID = qd_devices.ID " + $"ORDER BY LogTime DESC " + limitString; lblActionDescriptor.Text = "Showing all recorded actions."; break; case BrowserSort.SortedByActionType: sqlQuery = $"SELECT " + $"*, " + $"qd_conlog.ID AS MainID, " + $"CONCAT(qd_users.Name, ' (', qd_users.Username, ')') AS UserDisplay, " + $"CONCAT(qd_devices.LogonName, ' @ ', qd_devices.DeviceName) AS DeviceDisplay " + $"FROM qd_conlog " + $"INNER JOIN qd_users ON qd_conlog.UserID = qd_users.ID " + $"INNER JOIN qd_devices ON qd_conlog.DeviceID = qd_devices.ID " + $"WHERE qd_conlog.LogAction = ? " + $"ORDER BY LogTime DESC " + limitString; lblActionDescriptor.Text = $"Showing all recorded actions of type \"{(QDLogAction)Convert.ToInt32(SelectedObjectID.Replace("ACT=", ""))}\"."; break; case BrowserSort.SortedByDevice: sqlQuery = $"SELECT " + $"*, " + $"qd_conlog.ID AS MainID, " + $"CONCAT(qd_users.Name, ' (', qd_users.Username, ')') AS UserDisplay, " + $"CONCAT(qd_devices.LogonName, ' @ ', qd_devices.DeviceName) AS DeviceDisplay " + $"FROM qd_conlog " + $"INNER JOIN qd_users ON qd_conlog.UserID = qd_users.ID " + $"INNER JOIN qd_devices ON qd_conlog.DeviceID = qd_devices.ID " + $"WHERE qd_devices.ID = ? " + $"ORDER BY LogTime DESC " + limitString; lblActionDescriptor.Text = $"Showing all recorded actions of device \"{mysql.ExecuteScalarACon<string>("SELECT CONCAT(LogonName, ' @ ', DeviceName) FROM qd_devices WHERE ID = ?", SelectedObjectID)}\"."; break; case BrowserSort.SortedByUsers: sqlQuery = $"SELECT " + $"*, " + $"qd_conlog.ID AS MainID, " + $"CONCAT(qd_users.Name, ' (', qd_users.Username, ')') AS UserDisplay, " + $"CONCAT(qd_devices.LogonName, ' @ ', qd_devices.DeviceName) AS DeviceDisplay " + $"FROM qd_conlog " + $"INNER JOIN qd_users ON qd_conlog.UserID = qd_users.ID " + $"INNER JOIN qd_devices ON qd_conlog.DeviceID = qd_devices.ID " + $"WHERE qd_users.ID = ? " + $"ORDER BY LogTime DESC " + limitString; lblActionDescriptor.Text = $"Showing all recorded actions of user \"{mysql.ExecuteScalarACon<string>("SELECT CONCAT(Name, ' (', Username, ')') FROM qd_users WHERE ID = ?", SelectedObjectID)}\"."; break; } dgvActionBrowser.Rows.Clear(); if (!QDLib.ManagedDBOpen(mysql)) { QDLib.DBOpenFailed(); qdLoader.Close(); return; } using (MySqlDataReader reader = (MySqlDataReader)mysql.ExecuteQuery(sqlQuery, SelectedObjectID.Replace("ACT=", ""))) { while (reader.Read()) { dgvActionBrowser.Rows.Add(new string[] { Convert.ToString(reader["MainID"]), Convert.ToString(reader["LogTime"]), Convert.ToString(reader["UserDisplay"]), Convert.ToString(reader["DeviceDisplay"]), Convert.ToString((QDLogAction)Convert.ToInt32(reader["LogAction"])), }); } } mysql.Close(); lblResultRange.Text = $"Showing entries {listOffset + 1} to {listOffset + dgvActionBrowser.Rows.Count} ({totalEntryCount} entries in total)"; qdLoader.Close(); }
private void btnChangeMasterPassword_Click(object sender, EventArgs e) { QDChangeMasterPassword changeMasterPassword = new QDChangeMasterPassword() { MasterPassword = masterPassword }; if (changeMasterPassword.ShowDialog() == DialogResult.OK) { try { mysql.ExecuteNonQueryACon("UPDATE qd_info SET QDValue = ? WHERE QDKey = ?", QDLib.HashPassword(changeMasterPassword.MasterPassword), QDInfo.DBO.MasterPassword); MessageBox.Show("Successfully changed Master-Password.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch { MessageBox.Show("Could not change password. Please try again later.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }