//opens modal to edit specified user details protected void lblName_Click(object sender, EventArgs e) { LinkButton name = sender as LinkButton; GridViewRow row = name.NamingContainer as GridViewRow; Label Id = row.FindControl("lblUserID") as Label; Label empId = row.FindControl("lblEmpID") as Label; Label username = row.FindControl("lblUserName") as Label; lblEditHeader.Text = name.Text; userID = Convert.ToByte(Id.Text); resetEdit(); if (userID != null) { ClientScript.RegisterStartupScript(GetType(), "Show", "<script> jQuery.noConflict(); $('#editUserModal').modal('toggle');</script>", false); } else { ShowMessage("Something went wrong and record could not be opened. Kindly try again and if the error persists, refer to the error log for details.", MessageType.Error); } //setup modals editUser.Visible = true; addUser.Visible = false; editUser.ddl_Employee.Visible = false; editUser.lbl_Employee.Visible = true; editUser.lbl_Employee.Text = name.Text; ///*populate with user data*/ MembershipUser usr = Membership.GetUser(username.Text); Int16 employeeId = Convert.ToInt16(empId.Text); DataTable dt = getEmployeeDetails(employeeId); if (dt != null) { foreach (DataRow r in dt.Rows) { editUser.FirstName = r["FirstName"].ToString(); editUser.LastName = r["LastName"].ToString(); editUser.Status = r["IsActive"].ToString(); if (r["ResetNeeded"] != DBNull.Value) { editUser.Reset = true; } } } //user roles editUser.Roles = new List <string>(Roles.GetRolesForUser(usr.UserName)); //username editUser.UserName = usr.UserName; //user email editUser.Email = usr.Email; //password, disable validators editUser.pwdvalidator.Enabled = false; editUser.confpwdvalidator.Enabled = false; //editUser.Password = usr.GetPassword(); //store previous values prevVals prev = new prevVals(); prev.empDetails = dt; prev.oldEmail = usr.Email; prev.oldRoles = new List <string>(Roles.GetRolesForUser(usr.UserName)); persistValues = prev; //save employee id employeeID = Convert.ToInt16(empId.Text); //modal performance editUser.isNewUser = false; if (users != null) { bindUsers(); //needed for modal performance } }
//update user details protected bool updateUserLogin() { bool success = false; //variables List <string> role = editUser.Roles; string firstName = editUser.FirstName; string lastName = editUser.LastName; string email = editUser.Email; bool status = Convert.ToBoolean(editUser.Status); string passsword = editUser.Password; string confpassword = editUser.confPassword; bool reset = editUser.Reset; short employeeId = (Int16)employeeID; string username = editUser.UserName; byte loggedInUser = MISC.getUserID(); byte updateUser = MISC.getUserID(username); //old values and membership variables prevVals prev = persistValues; MembershipUser user; user = Membership.GetUser(username); /*Update employee details*/ if (updateEmployee(status, reset, firstName, lastName, employeeId, loggedInUser)) { try { /*Update Membership details*/ if (prev.oldEmail != email) { user.Email = email; } if (passsword != "") { user.ChangePassword(user.ResetPassword(), passsword); } //Roles Update if (!role.SequenceEqual(prev.oldRoles)) { //update roles foreach (string rolename in prev.oldRoles) { if (Roles.IsUserInRole(username, rolename)) { Roles.RemoveUserFromRole(username, rolename); } } foreach (string rolename2 in role) { if (!Roles.IsUserInRole(username, rolename2)) { Roles.AddUserToRole(username, rolename2); } } } //update user details Membership.UpdateUser(user); success = true; AuditLog(employeeId, "tbl_Sup_Employees", "Updated User Details For - " + lastName + ", " + firstName, loggedInUser); } catch (Exception exec) { //rollback employee update? MISC.writetoAlertLog(exec.ToString()); } } return(success); }