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 ValidateCredentialsButton_Click(object sender, System.EventArgs e) { string enteredPwd = PasswordTextBox.Text.Trim(); string enteredUname = LoginTextBox.Text.Trim(); if (enteredUname.Length > 0 && enteredPwd.Length > 0) { string encryptedPwd; int?id = new Users().GetUserByIdFromUserName(LoginTextBox.Text); if ((id ?? 0) > 0) { var sec = new LoginSecurity(); var user = new Users().GetUserById(id ?? 0); string pwd = user.Users[0].Password; string salt = user.Users[0].IsPasswordSaltNull() ? null : user.Users[0].PasswordSalt; if (string.IsNullOrEmpty(salt))// Unhashed old style .Create salted password and update { encryptedPwd = new User().EncryptUserPassword(enteredPwd); salt = sec.CreateSaltKey(5); } else { salt = user.Users[0].PasswordSalt; encryptedPwd = sec.CreatePasswordHash(enteredPwd, salt); } if (user.Users[0].Password == encryptedPwd) { var authUser = user; UserSettingData userSettings = new Users().GetUserSettings(authUser.Users[0].UserId); if (userSettings.UserSettings.Rows.Count > 0) { System.Text.StringBuilder userInfos = new System.Text.StringBuilder(); userInfos.Append(authUser.Users[0].UserName + ","); userInfos.Append(authUser.Users[0].UserId + ","); userInfos.Append(authUser.Users[0].FirstName + ","); userInfos.Append(authUser.Users[0].LastName + ","); userInfos.Append(authUser.Users[0].Email + ","); userInfos.Append(userSettings.UserSettings[0].IsAdmin + ","); userInfos.Append(userSettings.UserSettings[0].GlobalSurveyAccess); userInfos.Append("|"); int[] userRights = new Users().GetUserSecurityRights(authUser.Users[0].UserId); for (int i = 0; i < userRights.Length; i++) { userInfos.Append(userRights[i].ToString()); if (i + 1 < userRights.Length) { userInfos.Append(","); } } if (authUser.Users[0].IsPasswordSaltNull()) { authUser.Users[0].PasswordSalt = salt; authUser.Users[0].Password = sec.CreatePasswordHash(enteredPwd, salt); ((INSurveyUserProvider)_userProvider).UpdateUser(authUser); } FormsAuthentication.SetAuthCookie(userInfos.ToString(), false); var x = UserFactory.Create().CreatePrincipal(new ClaimsIdentity()); // ((Wap)this.Master).isTreeStale = true; ((PageBase)Page).SelectedFolderId = null; // ((Wap)this.Master).RebuildTree(); UINavigator.NavigateToFirstAccess(x, -1); } } } } MessageLabel.Visible = true; ((PageBase)Page).ShowErrorMessage(MessageLabel, ((PageBase)Page).GetPageResource("InvalidLoginPasswordMessage")); }
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(); }
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'); int importCount = 0; var sec = new LoginSecurity(); 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")); } ImportUsersTextBox.Text = string.Empty; UserRolesListBox.Items.Clear(); UserSurveysListBox.Items.Clear(); BindSurveyDropDownLists(); }