private void saveStateCheckBox_Click(object sender, EventArgs e) { // need to prevent the user from going to an open terminal and clearing // the save state, then setting the master password to anything they like // saveStateCheckBox.Checked was the state before the click // if previously checked, the user is trying to clear it => authorization maybe required // (depending on the state of the requireMasterPasswordCheckBox; this should be cleared too if checked) if (saveStateCheckBox.Checked && requireMasterPasswordCheckBox.Checked) { using (var enterPassword = new EnterMasterPasswordDialog(TemporaryMasterPassword)) { if (enterPassword.ShowDialog(this) == DialogResult.OK) { TemporaryMasterPassword = null; saveStateCheckBox.Checked = false; requireMasterPasswordCheckBox.Checked = false; masterPasswordGroupBox.Enabled = false; } } } else { saveStateCheckBox.Checked = !saveStateCheckBox.Checked; masterPasswordGroupBox.Enabled = saveStateCheckBox.Checked; changeMasterPasswordButton.Enabled = requireMasterPasswordCheckBox.Checked; } }
private void requireMasterPasswordCheckBox_Click(object sender, EventArgs e) { // requireMasterPasswordCheckBox.Checked was the state before the click // if previously checked, the user is trying to clear it => request authorization // if previously unchecked, the user is trying to set a password if (requireMasterPasswordCheckBox.Checked) { using (var enterPassword = new EnterMasterPasswordDialog(TemporaryMasterPassword)) { if (enterPassword.ShowDialog(this) == DialogResult.OK) { TemporaryMasterPassword = null; requireMasterPasswordCheckBox.Checked = false; changeMasterPasswordButton.Enabled = false; } } } else { System.Diagnostics.Debug.Assert(TemporaryMasterPassword == null, "Master password is set, but not reflected on GUI"); if (TemporaryMasterPassword == null) { // no previous password existed => set a new one using (var setPassword = new SetMasterPasswordDialog()) { if (setPassword.ShowDialog(this) == DialogResult.OK) { TemporaryMasterPassword = setPassword.NewPassword; requireMasterPasswordCheckBox.Checked = true; changeMasterPasswordButton.Enabled = true; } } } else { // a previous password existed (should never get here but just in case) // enable button to facilitate password change requireMasterPasswordCheckBox.Checked = true; changeMasterPasswordButton.Enabled = true; } } }