/// <summary> /// Get the current DB data and fill /// the fields with them /// </summary> public void BindFields() { if (UserId < 0) { ViewState["UserName"] = string.Empty; UserNameTextBox.Text = string.Empty; FirstNameTextBox.Text = string.Empty; LastNameTextBox.Text = string.Empty; EmailTextBox.Text = string.Empty; NSurveyUserPlaceHolder.Visible = true; IsAdminCheckBox.Checked = false; HasSurveyAccessCheckBox.Checked = false; SurveysListBox.Enabled = false; UserSurveysListBox.Enabled = false; return; } // Check if we can edit extended properties if (_userProvider is INSurveyUserProvider) { NSurveyUserPlaceHolder.Visible = true; // Retrieve the user data NSurveyUserData userData = new Users().GetUserById(UserId); NSurveyUserData.UsersRow user = userData.Users[0]; ViewState["UserName"] = user.UserName; UserNameTextBox.Text = user.UserName; FirstNameTextBox.Text = user.FirstName; LastNameTextBox.Text = user.LastName; EmailTextBox.Text = user.Email; // attempt to repopulate the PWTB //PasswordTextBox.Text = user.Password; } else { NSurveyUserPlaceHolder.Visible = false; } UserSettingData userSettings = new Users().GetUserSettings(UserId); if (userSettings.UserSettings.Rows.Count > 0) { IsAdminCheckBox.Checked = userSettings.UserSettings[0].IsAdmin; HasSurveyAccessCheckBox.Checked = userSettings.UserSettings[0].GlobalSurveyAccess; } else { IsAdminCheckBox.Checked = false; HasSurveyAccessCheckBox.Checked = false; } SurveysListBox.Enabled = !HasSurveyAccessCheckBox.Checked; UserSurveysListBox.Enabled = !HasSurveyAccessCheckBox.Checked; BindSurveyDropDownLists(); }
private void ImportUsersButton_Click(object sender, System.EventArgs e) { Regex re = new Regex(@"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}" + @"\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\" + @".)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"); string[] users = ImportUsersTextBox.Text.Split('\n'); for (int i = 0; i < users.Length; i++) { string[] user = users[i].Split(','); if (user.Length > 4 && user[0].Trim().Length > 0 && user[1].Trim().Length > 0) { // Check if user already exists in the db if (new Users().GetUserByIdFromUserName(user[0]) == -1) { NSurveyUserData userData = new NSurveyUserData(); NSurveyUserData.UsersRow newUser = userData.Users.NewUsersRow(); newUser.UserName = user[0].Trim(); newUser.Password = new User().EncryptUserPassword(user[1].Trim()); newUser.Email = user[4].Length > 0 && re.IsMatch(user[4].Trim()) ? user[4].Trim() : null; newUser.FirstName = user[3].Length > 0 ? user[3].Trim() : null; newUser.LastName = user[2].Length > 0 ? user[2].Trim() : null; userData.Users.Rows.Add(newUser); ((INSurveyUserProvider)_userProvider).AddUser(userData); AddUserSettings(userData.Users[0].UserId); AddUserRoles(userData.Users[0].UserId); if (!HasSurveyAccessCheckBox.Checked) { AddUserSurveys(userData.Users[0].UserId); } } } } MessageLabel.Visible = true; ((PageBase)Page).ShowNormalMessage(MessageLabel, ((PageBase)Page).GetPageResource("UserImportedMessage")); ImportUsersTextBox.Text = string.Empty; UserRolesListBox.Items.Clear(); UserSurveysListBox.Items.Clear(); BindSurveyDropDownLists(); }
private void CreateUserButton_Click(object sender, System.EventArgs e) { if (ValidateFieldOptions()) { NSurveyUserData userData = new NSurveyUserData(); NSurveyUserData.UsersRow newUser = userData.Users.NewUsersRow(); if (_userProvider is INSurveyUserProvider) { //if (PasswordTextBox.Text.Length == 0) if (!Regex.IsMatch(PasswordTextBox.Text, @"(?=^.{8,12}$)(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*()_+}{":;'?/>.<,])(?!.*\s).*$")) { MessageLabel.Visible = true; ((PageBase)Page).ShowErrorMessage(MessageLabel, ((PageBase)Page).GetPageResource("PasswordRequiredMessage")); return; } newUser.UserName = UserNameTextBox.Text; var sec = new LoginSecurity(); newUser.PasswordSalt = sec.CreateSaltKey(5); newUser.Password = sec.CreatePasswordHash(PasswordTextBox.Text, newUser.PasswordSalt); newUser.Email = EmailTextBox.Text; newUser.FirstName = FirstNameTextBox.Text; newUser.LastName = LastNameTextBox.Text; userData.Users.Rows.Add(newUser); ((INSurveyUserProvider)_userProvider).AddUser(userData); } if (userData.Users.Rows.Count > 0) { UserSettingData userSettings = new UserSettingData(); UserSettingData.UserSettingsRow newUserSettings = userSettings.UserSettings.NewUserSettingsRow(); newUserSettings.UserId = userData.Users[0].UserId; newUserSettings.IsAdmin = IsAdminCheckBox.Checked; newUserSettings.GlobalSurveyAccess = HasSurveyAccessCheckBox.Checked; userSettings.UserSettings.Rows.Add(newUserSettings); new User().AddUserSettings(userSettings); } UINavigator.NavigateToUserManager(((PageBase)Page).getSurveyId(), ((PageBase)Page).MenuIndex); } }
private void ApplyChangesButton_Click(object sender, System.EventArgs e) { if (ValidateFieldOptions()) { if (new Users().IsAdministrator(UserId) && !IsAdminCheckBox.Checked && new Users().GetAdminCount() == 1) { MessageLabel.Visible = true; ((PageBase)Page).ShowErrorMessage(MessageLabel, ((PageBase)Page).GetPageResource("CannotDeleteLastAdminMessage")); return; } if (_userProvider is INSurveyUserProvider) { NSurveyUserData userData = new NSurveyUserData(); NSurveyUserData.UsersRow updatedUser = userData.Users.NewUsersRow(); updatedUser.UserId = UserId; updatedUser.UserName = UserNameTextBox.Text; // if no password was specified the old one will be kept if (PasswordTextBox.Text.Length > 0) { if (!Regex.IsMatch(PasswordTextBox.Text, @"(?=^.{8,12}$)(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*()_+}{":;'?/>.<,])(?!.*\s).*$")) { MessageLabel.Visible = true; ((PageBase)Page).ShowErrorMessage(MessageLabel, ((PageBase)Page).GetPageResource("PasswordRequiredMessage")); return; } else { var sec = new LoginSecurity(); updatedUser.PasswordSalt = sec.CreateSaltKey(5); updatedUser.Password = sec.CreatePasswordHash(PasswordTextBox.Text, updatedUser.PasswordSalt); } } else { updatedUser.Password = null; updatedUser.PasswordSalt = null; } updatedUser.Email = EmailTextBox.Text; updatedUser.FirstName = FirstNameTextBox.Text; updatedUser.LastName = LastNameTextBox.Text; userData.Users.Rows.Add(updatedUser); ((INSurveyUserProvider)_userProvider).UpdateUser(userData); } UserSettingData userSettings = new UserSettingData(); UserSettingData.UserSettingsRow newUserSettings = userSettings.UserSettings.NewUserSettingsRow(); newUserSettings.UserId = UserId; newUserSettings.IsAdmin = IsAdminCheckBox.Checked; newUserSettings.GlobalSurveyAccess = HasSurveyAccessCheckBox.Checked; userSettings.UserSettings.Rows.Add(newUserSettings); new User().UpdateUserSettings(userSettings); // Notifiy containers that data has changed OnOptionChanged(); BindSurveyDropDownLists(); MessageLabel.Visible = true; ((PageBase)Page).ShowNormalMessage(MessageLabel, ((PageBase)Page).GetPageResource("UserUpdatedMessage")); } }
protected void ImportUsersButton_Click(object sender, EventArgs e) { Regex re = new Regex(@"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}" + @"\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\" + @".)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"); int importCount = 0; var sec = new LoginSecurity(); if (ImportUserMatrixFile.HasFile) { try { var workPart = SpreadsheetDocument.Open(ImportUserMatrixFile.FileContent, false).WorkbookPart; var sheetData = workPart.WorksheetParts.First().Worksheet.Elements <SheetData>().First(); foreach (var row in sheetData.Elements <Row>()) { if (row.RowIndex > 0) { var cells = row.Descendants <Cell>().ToList(); if (cells.Count >= 5) { string username = ReadExcelCell(cells[0], workPart); if (new Users().GetUserByIdFromUserName(username) == -1) { NSurveyUserData userData = new NSurveyUserData(); NSurveyUserData.UsersRow newUser = userData.Users.NewUsersRow(); newUser.UserName = username.Trim(); string password = "******"; newUser.PasswordSalt = sec.CreateSaltKey(5); newUser.Password = sec.CreatePasswordHash(password, newUser.PasswordSalt); string email = ReadExcelCell(cells[1], workPart); newUser.Email = email.Length > 0 && re.IsMatch(email.Trim()) ? email.Trim() : null; if (cells.Count >= 6) { newUser.FirstName = ReadExcelCell(cells[5], workPart); } if (cells.Count >= 7) { newUser.LastName = ReadExcelCell(cells[6], workPart); } userData.Users.Rows.Add(newUser); ((INSurveyUserProvider)_userProvider).AddUser(userData); if (userData.Users[0].UserId > 0) { importCount++; //TODO: add user group AddUserSettings(userData.Users[0].UserId); AddUserRoles(userData.Users[0].UserId); new Survey().AssignUserToSurvey(int.Parse(ReadExcelCell(cells[2], workPart)), userData.Users[0].UserId); } } } } } } catch (Exception ex) { ((PageBase)Page).ShowErrorMessage(MessageLabel, ex.Message); } } string[] users = "".Split('\n'); //ImportUsersTextBox.Text.Split('\n'); //for (int i = 0; i < users.Length; i++) //{ // string[] user = users[i].Split(','); // if (user.Length > 4 && user[0].Trim().Length > 0 && user[1].Trim().Length > 0) // { // // Check if user already exists in the db // if (new Users().GetUserByIdFromUserName(user[0]) == -1) // { // NSurveyUserData userData = new NSurveyUserData(); // NSurveyUserData.UsersRow newUser = userData.Users.NewUsersRow(); // newUser.UserName = user[0].Trim(); // string password = user[1].Trim(); // newUser.PasswordSalt =sec.CreateSaltKey(5); // newUser.Password = sec.CreatePasswordHash(password, newUser.PasswordSalt); // newUser.Email = user[4].Length > 0 && re.IsMatch(user[4].Trim()) ? // user[4].Trim() : null; // newUser.FirstName = user[3].Length > 0 ? user[3].Trim() : null; // newUser.LastName = user[2].Length > 0 ? user[2].Trim() : null; // userData.Users.Rows.Add(newUser); // ((INSurveyUserProvider)_userProvider).AddUser(userData); // if (userData.Users[0].UserId > 0) importCount++; // AddUserSettings(userData.Users[0].UserId); // AddUserRoles(userData.Users[0].UserId); // //if (!HasSurveyAccessCheckBox.Checked) // //{ // // AddUserSurveys(userData.Users[0].UserId); // //} // } // } //} MessageLabel.Visible = true; if (importCount > 0) { ((PageBase)Page).ShowNormalMessage(MessageLabel, ((PageBase)Page).GetPageResource("UserImportedMessage")); } else { ((PageBase)Page).ShowErrorMessage(MessageLabel, ((PageBase)Page).GetPageResource("NoUserImportedMessage")); } BindSurveyDropDownLists(); }