private void teachingFunctionsButton_Click(object sender, System.EventArgs e) { // Make a new teaching form. TeacherMainForm tf = new TeacherMainForm { StaffId = this.StaffId, StaffName = Staff.GetStaffNameById(this.StaffId), }; Hide(); tf.ShowDialog(); tf.Dispose(); Show(); }
private void LoginButton_Click(object sender, EventArgs e) { string username = usernameBox.Text; Debug.WriteLine(username); // Run plain-text password through algorithm string password = HashingAlgorithm(passwordBox.Text); try { SqlCommand comm = new SqlCommand("SELECT StaffPassword FROM Staff WHERE StaffUsername = @StaffUsername"); comm.Parameters.AddWithValue("@StaffUsername", username); DataTable dt = SqlTools.GetTable(comm); // If password needs to be reset, don't continue if ((string)dt.Rows[0]["StaffPassword"] == "") { ResetPasswordForm pwForm = new ResetPasswordForm(username); pwForm.ShowDialog(); pwForm.Dispose(); } else { if ((string)dt.Rows[0]["StaffPassword"] == password) { switch (Staff.GetPermissionLevel(username)) { case PermissionLevel.Overseer: int staffId = Staff.GetStaffIdByUsername(username); OverseerForm of = new OverseerForm { StaffId = staffId, isTutor = false }; Hide(); of.FormClosed += (s, args) => Close(); of.Show(); break; case PermissionLevel.Admin: AdminForm af = new AdminForm(); Hide(); af.FormClosed += (s, args) => Close(); af.Show(); break; case PermissionLevel.Teacher: staffId = Staff.GetStaffIdByUsername(username); TeacherMainForm tf = new TeacherMainForm { StaffId = staffId, StaffName = Staff.GetStaffNameById(staffId), }; Hide(); tf.FormClosed += (s, args) => Close(); tf.Show(); break; default: MessageBox.Show("Future system will have lower permission levels"); break; } } else { // The password must be wrong if the username is right. invalidPasswordLabel.Show(); } } } catch (Exception ex) { Debug.WriteLine(ex); // Unfortunately, we have to assume the username is wrong. // The end-user can't have done much else wrong - except a bad // username. invalidUsernameLabel.Show(); throw ex; } }