Exemplo n.º 1
0
        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";
            }
        }
Exemplo n.º 2
0
 private void btnRunSetup_Click(object sender, EventArgs e)
 {
     if (QDLib.RunQDriveSetup())
     {
         this.Close();
     }
 }
Exemplo n.º 3
0
        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();
                }
            }
        }
Exemplo n.º 4
0
        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();
        }
Exemplo n.º 5
0
        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();
            }
        }
Exemplo n.º 6
0
 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
 });
Exemplo n.º 7
0
 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);
     }
 }
Exemplo n.º 8
0
        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();
            }
        }
Exemplo n.º 9
0
 private void nfiQDriveMenu_Reconnect_Click(object sender, EventArgs e)
 {
     if (localConnection)
     {
         QDLib.ConnectQDDrives("", "", dbData, logUserActions, true);
     }
     else
     {
         QDLib.ConnectQDDrives(UserID, Password, dbData, logUserActions, true);
     }
 }
Exemplo n.º 10
0
        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();
        }
Exemplo n.º 11
0
 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);
         }
     }
 }
Exemplo n.º 12
0
        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();
            }
        }
Exemplo n.º 13
0
 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);
     }
 }
Exemplo n.º 14
0
        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);
                }
            }
        }
Exemplo n.º 15
0
        private void QDriveAdminConsole_Load(object sender, EventArgs e)
        {
            if (!QDLib.IsQDConfigured())
            {
                pnlNotConfigured.BringToFront();
            }
            else
            {
                LoadAllData();
                UpdateAll();

                pnlLogin.BringToFront();

                txbMasterPassword.Focus();
            }
        }
Exemplo n.º 16
0
        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();
        }
Exemplo n.º 17
0
        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();
                }
            }
        }
Exemplo n.º 18
0
        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();
        }
Exemplo n.º 19
0
        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();
            }
        }
Exemplo n.º 20
0
        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();
        }
Exemplo n.º 21
0
        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);
        }
Exemplo n.º 22
0
        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();
        }
Exemplo n.º 23
0
        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();
                }
            }
        }
Exemplo n.º 24
0
        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";
            }
        }
Exemplo n.º 25
0
        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();
        }
Exemplo n.º 26
0
        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();
                }
            }
        }
Exemplo n.º 27
0
        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);
        }
Exemplo n.º 28
0
        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);
        }
Exemplo n.º 29
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();
        }
Exemplo n.º 30
0
        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);
                }
            }
        }