private void LblAceptar_Click(object sender, EventArgs e) { //Valido que las contraseñas coincidan if (TxtContrasena.Text != TxtContrasenaRepetida.Text) { MessageBox.Show("Las contrasenas informadas no coinciden.", "Atención"); } else { //Encripto la nueva contraseña var hashedPassword = SHA256Helper.Encode(TxtContrasena.Text); //Impacto el cambio en la base de datos UsuarioPersistance.ChangePassword(this.currentUser, hashedPassword); //Vuelvo a traer el usuario porque cambió SessionManager.CurrentUser = UsuarioPersistance.GetByUsername(this.currentUser.Username); Close(); } }
private void DoLogin(string userName, string password) { try { //Realizo validaciones de datos ingresados if (string.IsNullOrEmpty(userName)) { throw new Exception("El usuario no puede ser vacío."); } if (string.IsNullOrEmpty(password)) { throw new Exception("La contraseña no puede ser vacía."); } //Valido que los datos del usuario ingresados sean correctos var user = UsuarioPersistance.Login(userName, password); //El usuario no se encuentra habilitado if (!user.Habilitado) { throw new Exception("No puede loguearse. El usuario se encuentra inhabilitado debido a que acumula más de 10 compras sin rendir. Por favor, acérquese a la oficina de administración."); } //Pregunto si por lo menos tiene un rol asignado que se encuentre activo if (user.RolesActivos != null) { //Seteo el usuario en sesion SessionManager.CurrentUser = user; //Mientras que el usuario posea una contraseña temporal, lo obligo a que la cambie while (SessionManager.CurrentUser.PassTemporal) { MessageBox.Show("Posee una contraseña temporal. Debera cambiarla a continuacion.", "Atención"); //Muestro el formulario para el cambio de contraseña var resetPassword = new FrmResetPassword(); resetPassword.ShowDialog(); //Refresco el currentUser por si ya lo modificó SessionManager.CurrentUser = UsuarioPersistance.GetByUsername(SessionManager.CurrentUser.Username); } Hide(); if (user.RolesActivos.Count > 1) { //Posee mas de un rol activo asignado, debe seleccionar uno solo var chooseRol = new FrmChooseRol(); chooseRol.ShowDialog(); } else { //Posee un unico rol asignado activo. Lo seteo en sesion. SessionManager.CurrentRol = user.RolesActivos.First(); //Muestro el formulario de home var home = new FrmHome(); home.ShowDialog(); } Close(); } else { throw new Exception("El usuario no cuenta con roles que se encuentren activos."); } } catch (Exception ex) { MessageBox.Show(ex.Message, "Atención"); } }
private void LblGrabar_Click(object sender, EventArgs e) { try { #region Validaciones var exceptionMessage = string.Empty; if (string.IsNullOrEmpty(TxtUsuario.Text)) { throw new Exception("El usuario no puede ser vacío."); } if (string.IsNullOrEmpty(TxtContrasena.Text)) { throw new Exception("La contraseña no puede ser vacía."); } if (UsuarioPersistance.GetByUsername(TxtUsuario.Text) != null) { exceptionMessage += Environment.NewLine + "Ya existe un usuario con el nombre ingresado."; } if (!string.IsNullOrEmpty(exceptionMessage)) { throw new Exception(exceptionMessage); } #endregion #region Inserto el nuevo usuario var user = new Usuario(); user.Username = TxtUsuario.Text; user.Password = SHA256Helper.Encode(TxtContrasena.Text); var dialogAnswer = MessageBox.Show("Esta seguro que quiere insertar el nuevo usuario?", "Atencion", MessageBoxButtons.YesNo); if (dialogAnswer == DialogResult.Yes) { using (var transaction = DataBaseManager.Instance().Connection.BeginTransaction(IsolationLevel.Serializable)) { if (_abmEmpresa || _abmCliente) { user = UsuarioPersistance.InsertUserTemporal(user, transaction); } else { user = UsuarioPersistance.InsertUser(user, transaction); } Rol selectedRol = (Rol)CboRoles.SelectedItem; RolPersistance.InsertUserRole(user, selectedRol, transaction); if (!_abmEmpresa && !_abmCliente) { //Cargo los datos en sesion SessionManager.CurrentUser = user; SessionManager.CurrentRol = selectedRol; SessionManager.CurrentRol.Funcionalidades = FuncionalidadPersistance.GetByRole(SessionManager.CurrentRol, transaction); } switch (selectedRol.Descripcion) { case "Cliente": this.Hide(); var frmABMInsertUpdateCliente = new FrmABMInsertUpdateCliente(transaction, _abmCliente, user); frmABMInsertUpdateCliente.ShowDialog(); break; case "Empresa": this.Hide(); var frmABMInsertUpdateEmpresa = new FrmABMInsertUpdateEmpresa(transaction, _abmEmpresa, user); frmABMInsertUpdateEmpresa.ShowDialog(); break; default: transaction.Commit(); this.Hide(); var frmHome = new FrmHome(); frmHome.ShowDialog(); break; } } } #endregion } catch (Exception ex) { MessageBox.Show(ex.Message, "Atención"); } }