public IHttpActionResult UpdateUser(FrontendUserModel model) { if (ModelState.IsValid) { bool passwordOk = true; bool passwordPresent = false; if (model.Password != null && model.Password != "") { passwordOk = Task.Run(async() => { return(await UserManager.PasswordValidator.ValidateAsync(model.Password)); }).Result.Succeeded; passwordPresent = true; } if (passwordOk) { ApplicationUser user = UserManager.FindByName(model.Username); if (user != null) { string newPasswordHash = UserManager.PasswordHasher.HashPassword(model.Password); if (passwordPresent) { user.PasswordHash = newPasswordHash; } if (UserManager.Update(user).Succeeded) { UserManager.RemoveFromRoles(user.Id, ApplicationRoleManager.DefinedRoles.ToArray()); foreach (string roleName in model.Roles) { UserManager.AddToRole(user.Id, roleName); } return(Ok()); } } } } return(BadRequest()); }
private void DeleteUser(object sender, EventArgs eventArgs) { FrontendUserModel user = _accountForm.GetSelectedUser() as FrontendUserModel; if (user != null) { if (MessageBox.Show("Czy na pewno chcesz usunąć użytkownika " + user.Username + "?", "Potwierdzenie usunięcia", MessageBoxButtons.YesNo) == DialogResult.Yes) { _httpConnector.DeleteUser(user); string errorMessage = _httpConnector.LastErrorMessage; if (errorMessage != null) { MessageBox.Show(errorMessage); } else { _accountForm.DataSource = null; _accountForm.DataSource = _httpConnector.GetUsers(); errorMessage = _httpConnector.LastErrorMessage; if (errorMessage != null) { MessageBox.Show(errorMessage); } } } } else { MessageBox.Show("Nie wybrano użytkownika"); } }
public IHttpActionResult AddUser(FrontendUserModel model) { if (ModelState.IsValid) { IdentityResult result = Task.Run(async() => { return(await UserManager.PasswordValidator.ValidateAsync(model.Password)); }).Result; if (result.Succeeded) { ApplicationUser user = UserManager.FindByName(model.Username); if (user == null) { string newPasswordHash = UserManager.PasswordHasher.HashPassword(model.Password); user = new ApplicationUser { Id = Guid.NewGuid().ToString(), UserName = model.Username, PasswordHash = newPasswordHash }; if (UserManager.Create(user).Succeeded) { foreach (string roleName in model.Roles) { UserManager.AddToRole(user.Id, roleName); } return(Ok()); } } } } return(BadRequest()); }
/// <summary> /// Obsługa zdarzenia dodania użytkonwika. Otwiera formularz dodawania. /// </summary> /// <param name="sender"></param> /// <param name="eventArgs"></param> private void AddUser(object sender, EventArgs eventArgs) { FrontendUserModel user = new FrontendUserModel(); while (true) { _userForm.OpenForAddition(user); if (_userForm.ShowDialog() == DialogResult.OK) { _httpConnector.AddUser(user); string errorMessage = _httpConnector.LastErrorMessage; if (errorMessage != null) { MessageBox.Show("Niepowodzenie dodawania użytkownika. Sprawdź czy hasło ma co najmniej 6 liter, zawiera jedną cyfrę, jeden znak specjalny i jedną wielką literę."); } else { _accountForm.DataSource = null; _accountForm.DataSource = _httpConnector.GetUsers(); errorMessage = _httpConnector.LastErrorMessage; if (errorMessage != null) { MessageBox.Show(errorMessage); } break; } } break; } }
public EntrancePage(FrontendUserModel user) { InitializeComponent(); this.user = user; Detail = new NavigationPage(new UserPets(this.user)); IsPresented = false; }
/// <summary> /// Otwiera fomularz i wypełnia aktualnymi danymi użytkownika /// </summary> /// <param name="user"></param> public void OpenForEdit(FrontendUserModel user) { _openedForEdit = true; _user = user; usernameTextBox.Text = user.Username ?? ""; passwordEdit.Clear(); foreach (CheckBox roleCheckBox in _roleCheckBoxes) { roleCheckBox.Checked = user.Roles != null && user.Roles.Exists((string roleName) => { return(roleName == roleCheckBox.Name); }); } }
public IHttpActionResult DeleteUser(FrontendUserModel model) { if (ModelState.IsValid && model.Username != null) { ApplicationUser foundUser = UserManager.FindByName(model.Username); if (foundUser != null) { if (UserManager.Delete(foundUser).Succeeded) { return(Ok()); } } } return(BadRequest()); }
public IHttpActionResult Update(FrontendUserModel model) { if (ModelState.IsValid) { ApplicationUser user = UserManager.FindByName(model.Login); if (user != null) { UserManager.RemoveFromRoles(user.Id, ApplicationRoleManager.DefinedRoles.ToArray()); if (model.Roles != null) { foreach (string roleName in model.Roles) { UserManager.AddToRoles(user.Id, model.Roles.ToArray()); } return(Ok()); } } } return(BadRequest(ModelState)); }
/// <summary> /// Obsługa zdarzenia edycji użytkownika. /// </summary> /// <param name="sender"></param> /// <param name="eventArgs"></param> private void UpdateUser(object sender, EventArgs eventArgs) { FrontendUserModel user = _accountForm.GetSelectedUser() as FrontendUserModel; if (user != null) { user = user.Clone(); while (true) { _userForm.OpenForEdit(user); if (_userForm.ShowDialog() == DialogResult.OK) { _httpConnector.UpdateUser(user); string errorMessage = _httpConnector.LastErrorMessage; if (errorMessage != null) { MessageBox.Show("Niepowodzenie edycji użytkownika. Sprawdź czy hasło ma co najmniej 6 liter, zawiera jedną cyfrę, jeden znak specjalny i jedną wielką literę."); } else { _accountForm.DataSource = null; _accountForm.DataSource = _httpConnector.GetUsers(); errorMessage = _httpConnector.LastErrorMessage; if (errorMessage != null) { MessageBox.Show(errorMessage); } break; } } else { break; } } } else { MessageBox.Show("Nie wybrano użytkownika"); } }
private async void LogInProcedure(object sender, EventArgs e) { if (ConnectionCheck.CheckForInternetConnection()) { //LOGIN REQUEST FrontendUserModel user = await LogUserInAsync(Entry_email.Text, Entry_Password.Text); if (user != null) { Navigation.RemovePage(this); await Navigation.PushModalAsync(new EntrancePage(user)); } else { await DisplayAlert("Login", "Such user is not found", "Ok"); } } else { await DisplayAlert("Login", "Check your internet connection", "Ok"); } }
/// <summary> /// Gets user personal data if he entered email and password correctly. /// </summary> /// <param name="email"></param> /// <param name="password"></param> /// <returns></returns> public static FrontendUserModel GetUserByLoginInfo(string email, string password) { SqlConnection connection = new SqlConnection(DataConnections.OwnerUAconnectionString); connection.Open(); // user data to return FrontendUserModel user = null; SqlCommand getUserByLoginInfoCommand = new SqlCommand("dbo.Users_GetUserByEmail", connection); getUserByLoginInfoCommand.CommandType = System.Data.CommandType.StoredProcedure; getUserByLoginInfoCommand.Parameters.AddWithValue("@Email", email); SqlDataReader userDataReader = getUserByLoginInfoCommand.ExecuteReader(); // if there is user with such email and his password correct then creating new user entity while (userDataReader.Read() && BCryptHashing.IsPasswordValid(password, (string)userDataReader[5])) { user = new FrontendUserModel { FirstName = (string)userDataReader[1], LastName = (string)userDataReader[2], Phone = (string)userDataReader[3], Email = (string)userDataReader[4] }; } userDataReader.Close(); connection.Close(); return(user); }
private async void StartFindingUser(object sender, EventArgs e) { var keyword = UserSearchBar.Text; if (Int32.TryParse(keyword, out var petId)) { FrameOwner.IsVisible = true; _frontendUser = await GetUserByPetIDAsync(petId); if (_frontendUser != null) { InitializeLables(); CreateFrame_user(); } else { CreateFrame_user(true); } } else { await DisplayAlert("Find User", "Input an integer into search field", "Ok"); } }
/// <summary> /// Usuwanie użytkownika /// </summary> /// <param name="model"></param> public void DeleteUser(FrontendUserModel model) { try { using (HttpResponseMessage responseMessage = Task.Run(async() => { return(await _httpClient.PostAsJsonAsync("api/Account/DeleteUser", model)); }).Result) { if (responseMessage.StatusCode == HttpStatusCode.OK) { } else if (responseMessage.StatusCode == HttpStatusCode.Unauthorized) { _lastErrorMessage = "Odmowa dostępu"; } else { _lastErrorMessage = "Błąd połączenia z serwerem"; } } } catch (Exception exc) { _lastErrorMessage = "Błąd połączenia z serwerem"; } }
/// <summary> /// Gets user info by his own pet id. /// </summary> /// <param name="petUniqueID"></param> /// <returns></returns> public static FrontendUserModel GetUserByPetID(int petUniqueID) { SqlConnection connection = new SqlConnection(DataConnections.OwnerUAconnectionString); connection.Open(); // user data to return FrontendUserModel user = null; SqlCommand getUserByPetIdCommand = new SqlCommand("dbo.Users_GetUserByPetID", connection); getUserByPetIdCommand.CommandType = System.Data.CommandType.StoredProcedure; getUserByPetIdCommand.Parameters.AddWithValue("@PetUniqueID", petUniqueID); SqlDataReader userDataReader = getUserByPetIdCommand.ExecuteReader(); // if there is user that have pet with such pet id then create new user entity while (userDataReader.Read()) { user = new FrontendUserModel { FirstName = (string)userDataReader[0], LastName = (string)userDataReader[1], Phone = (string)userDataReader[2], Email = (string)userDataReader[3] }; } userDataReader.Close(); connection.Close(); return(user); }
public UserPets(FrontendUserModel userModel) { InitializeComponent(); this._userModel = userModel; GetPets(); }