public bool ValidateAs(int userId) { if(userId == 1) { Titulo.Text = "Escriba la contraseña de Administrador"; if(Explain == null) LabelExplain.Text = "La operación que intenta realizar requiere por motivos de seguridad que escriba la contraseña de Administrador."; else LabelExplain.Text = Explain; } else if (userId != Lbl.Sys.Config.Actual.UsuarioConectado.Id) { this.Titulo.Text = "Para continuar, por favor escriba la contraseña del usuario."; if(Explain == null) this.LabelExplain.Text = "La operación que intenta realizar requiere por motivos de seguridad que escribir la contraseña de un usuario con permiso."; else LabelExplain.Text = Explain; } Lbl.Personas.Usuario Usuario = new Lbl.Personas.Usuario(this.Connection, userId); EntradaUsuario.Text = Usuario.Nombre; EntradaContrasena.Text = ""; if(this.ShowDialog() == DialogResult.OK) { if(Usuario.ContrasenaValida(EntradaContrasena.Text) == true) { return true; } else { Lui.Forms.MessageBox.Show("La contraseña proporcionada no es correcta.", "Error"); System.Threading.Thread.Sleep(1000); return false; } } else { return false; } }
public override void ActualizarControl() { Lbl.Personas.Usuario Usu = this.Elemento as Lbl.Personas.Usuario; EntradaContrasena.Text = ""; EntradaNombreUsuario.Text = Usu.NombreUsuario; TipoOriginal = Usu.Tipo; if ((Usu.Tipo & 4) == 4) { EntradaAcceso.TextKey = "1"; } else { EntradaAcceso.TextKey = "0"; } // No se pueden agregar o quitar permisos del usuario Administrador, sólo cambiar la contraseña EntradaAcceso.TemporaryReadOnly = Usu.Id == 1; BotonAgregar.Enabled = Usu.Id != 1; BotonQuitar.Enabled = Usu.Id != 1; this.MostrarPermisos(Usu); base.ActualizarControl(); }
public override void ActualizarElemento() { Lbl.Personas.Usuario Pers = this.Elemento as Lbl.Personas.Usuario; int Tipo = TipoOriginal; if (EntradaAcceso.TextKey == "1") { Tipo = Tipo | 4; } else { Tipo = Tipo & (~4); } Pers.Tipo = Tipo; Pers.NombreUsuario = EntradaNombreUsuario.Text; if (EntradaContrasena.Text.Length > 0) { Pers.Contrasena = EntradaContrasena.Text; } base.ActualizarElemento(); }
private void Listado_DoubleClick(object sender, System.EventArgs e) { if (Listado.SelectedItems.Count > 0) { ListViewItem Itm = Listado.SelectedItems[0]; Lbl.Sys.Permisos.Permiso Perm = Itm.Tag as Lbl.Sys.Permisos.Permiso; if (Perm != null) { Lbl.Personas.Usuario Usu = this.Elemento as Lbl.Personas.Usuario; EditarPermiso FormularioAgregar = new EditarPermiso(); FormularioAgregar.Usuario = Usu; FormularioAgregar.Permiso = Perm; if (FormularioAgregar.ShowDialog() == DialogResult.OK) { // Elimino el permiso viejo Listado.Items.Remove(Itm); Usu.Pemisos.Remove(Perm); // Agrego el nuevo Lbl.Sys.Permisos.Permiso NuevoPerm = FormularioAgregar.Permiso; Usu.Pemisos.Add(NuevoPerm); Listado.Changed = true; this.MostrarPermiso(NuevoPerm); } } } }
private void BotonAceptar_Click(object sender, System.EventArgs e) { if (EntradaUsuario.ValueInt == 0) { MessageBox.Show("Por favor ingrese su número de usuario y su contraseña.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return; } if (EntradaUsuario.ValueInt == 1 && Lfx.Workspace.Master.DebugMode == false) { string[] EstacionesAdministrador = Lfx.Workspace.Master.CurrentConfig.ReadGlobalSetting <string>("Sistema.Ingreso.Administrador.Estaciones", "").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); bool Puede = false; if (EstacionesAdministrador.Length == 0) { Puede = true; } else { foreach (string Estacion in EstacionesAdministrador) { if (Estacion.ToUpperInvariant() == Lfx.Environment.SystemInformation.MachineName) { Puede = true; break; } } } if (Puede == false) { System.Threading.Thread.Sleep(800); Lbl.Sys.Config.ActionLog(Lfx.Workspace.Master.MasterConnection, Lbl.Sys.Log.Acciones.LogOnFail, EntradaUsuario.Elemento, "Equipo no permitido."); MessageBox.Show("No se permite el acceso como Administrador desde este equipo.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } } Lbl.Personas.Usuario Usu = new Lbl.Personas.Usuario(Lfx.Workspace.Master.MasterConnection, EntradaUsuario.ValueInt); if (Usu.ContrasenaValida(EntradaContrasena.Text) == false) { System.Threading.Thread.Sleep(800); Lbl.Sys.Config.ActionLog(Lfx.Workspace.Master.MasterConnection, Lbl.Sys.Log.Acciones.LogOnFail, EntradaUsuario.Elemento, "Usuario o contraseña incorrecto."); MessageBox.Show("El nombre de usuario o la contraseña son incorrectos.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); EntradaContrasena.SelectionStart = 0; EntradaContrasena.SelectionLength = EntradaContrasena.Text.Length; EntradaContrasena.Focus(); } else { OkButton.Text = "Ingresando..."; OkButton.Refresh(); //Lbl.Personas.Persona Usuario = new Lbl.Personas.Persona(Lfx.Workspace.Master.MasterConnection, Usu.Id); Lbl.Sys.Config.Actual.UsuarioConectado = new Lbl.Sys.Configuracion.UsuarioConectado(Usu); Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Ingreso.UltimoUsuario", Lbl.Sys.Config.Actual.UsuarioConectado.Id.ToString(), Lfx.Environment.SystemInformation.MachineName); Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Ingreso.UltimoIngreso", Lfx.Types.Formatting.FormatDateTimeSql(System.DateTime.Now), Lfx.Environment.SystemInformation.MachineName); Lbl.Sys.Config.ActionLog(Lfx.Workspace.Master.MasterConnection, Lbl.Sys.Log.Acciones.LogOn, Usu, null); this.Close(); } }
private void QuitarPermiso(Lbl.Sys.Permisos.Permiso permiso) { Lbl.Personas.Usuario Usu = this.Elemento as Lbl.Personas.Usuario; Usu.Pemisos.Remove(permiso); Listado.Items.RemoveByKey(permiso.GetHashCode().ToString()); Listado.Changed = true; }
public Permiso(Lbl.Personas.Usuario usuario, Objeto tipo, Operaciones ops, ListaIds item) : this(usuario.Connection) { this.Usuario = usuario; this.Objeto = tipo; this.Operaciones = ops; this.Item = item; }
public ListaDePermisos(Lbl.Personas.Usuario usuario, System.Data.DataTable tabla) : base(usuario.Connection, tabla) { this.Usuario = usuario; foreach (Permiso Perm in this) { Perm.Usuario = usuario; } }
public bool ValidateAs(int userId) { if (userId == 1) { Titulo.Text = "Escriba la contraseña de Administrador"; if (Explain == null) { LabelExplain.Text = "La operación que intenta realizar requiere por motivos de seguridad que escriba la contraseña de Administrador."; } else { LabelExplain.Text = Explain; } } else if (userId != Lbl.Sys.Config.Actual.UsuarioConectado.Id) { this.Titulo.Text = "Para continuar, por favor escriba la contraseña del usuario."; if (Explain == null) { this.LabelExplain.Text = "La operación que intenta realizar requiere por motivos de seguridad que escribir la contraseña de un usuario con permiso."; } else { LabelExplain.Text = Explain; } } Lbl.Personas.Usuario Usuario = new Lbl.Personas.Usuario(this.Connection, userId); EntradaUsuario.Text = Usuario.Nombre; EntradaContrasena.Text = ""; if (this.ShowDialog() == DialogResult.OK) { if (Usuario.ContrasenaValida(EntradaContrasena.Text) == true) { return(true); } else { Lui.Forms.MessageBox.Show("La contraseña proporcionada no es correcta.", "Error"); System.Threading.Thread.Sleep(1000); return(false); } } else { return(false); } }
private void MostrarPermisos(Lbl.Personas.Usuario usuario) { Listado.SuspendLayout(); Listado.Items.Clear(); foreach (Lbl.Sys.Permisos.Permiso Perm in usuario.Pemisos) { this.MostrarPermiso(Perm); } Listado.Sorting = SortOrder.Ascending; Listado.Sort(); Listado.ResumeLayout(); }
private void BotonAgregar_Click(object sender, System.EventArgs e) { Lbl.Personas.Usuario Usu = this.Elemento as Lbl.Personas.Usuario; EditarPermiso FormularioAgregar = new EditarPermiso(); FormularioAgregar.Usuario = Usu; if (FormularioAgregar.ShowDialog() == DialogResult.OK) { Lbl.Sys.Permisos.Permiso NuevoPerm = FormularioAgregar.Permiso; Usu.Pemisos.Add(NuevoPerm); Listado.Changed = true; this.MostrarPermiso(NuevoPerm); } }
public ListaDePermisos(Lbl.Personas.Usuario usuario) : base(usuario.Connection) { }
private void BotonAceptar_Click(object sender, System.EventArgs e) { if (EntradaUsuario.ValueInt == 0) { MessageBox.Show("Por favor ingrese su número de usuario y su contraseña.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return; } if (EntradaUsuario.ValueInt == 1 && Lfx.Workspace.Master.DebugMode == false) { string[] EstacionesAdministrador = Lfx.Workspace.Master.CurrentConfig.ReadGlobalSetting<string>("Sistema.Ingreso.Administrador.Estaciones", "").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); bool Puede = false; if (EstacionesAdministrador.Length == 0) { Puede = true; } else { foreach (string Estacion in EstacionesAdministrador) { if (Estacion.ToUpperInvariant() == Lfx.Environment.SystemInformation.MachineName) { Puede = true; break; } } } if (Puede == false) { System.Threading.Thread.Sleep(800); Lbl.Sys.Config.ActionLog(Lfx.Workspace.Master.MasterConnection, Lbl.Sys.Log.Acciones.LogOnFail, EntradaUsuario.Elemento, "Equipo no permitido."); MessageBox.Show("No se permite el acceso como Administrador desde este equipo.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } } Lbl.Personas.Usuario Usu = new Lbl.Personas.Usuario(Lfx.Workspace.Master.MasterConnection, EntradaUsuario.ValueInt); if(Usu.ContrasenaValida(EntradaContrasena.Text) == false) { System.Threading.Thread.Sleep(800); Lbl.Sys.Config.ActionLog(Lfx.Workspace.Master.MasterConnection, Lbl.Sys.Log.Acciones.LogOnFail, EntradaUsuario.Elemento, "Usuario o contraseña incorrecto."); MessageBox.Show("El nombre de usuario o la contraseña son incorrectos.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); EntradaContrasena.SelectionStart = 0; EntradaContrasena.SelectionLength = EntradaContrasena.Text.Length; EntradaContrasena.Focus(); } else { OkButton.Text = "Ingresando..."; OkButton.Refresh(); //Lbl.Personas.Persona Usuario = new Lbl.Personas.Persona(Lfx.Workspace.Master.MasterConnection, Usu.Id); Lbl.Sys.Config.Actual.UsuarioConectado = new Lbl.Sys.Configuracion.UsuarioConectado(Usu); Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Ingreso.UltimoUsuario", Lbl.Sys.Config.Actual.UsuarioConectado.Id.ToString(), Lfx.Environment.SystemInformation.MachineName); Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Ingreso.UltimoIngreso", Lfx.Types.Formatting.FormatDateTimeSql(System.DateTime.Now), Lfx.Environment.SystemInformation.MachineName); Lbl.Sys.Config.ActionLog(Lfx.Workspace.Master.MasterConnection, Lbl.Sys.Log.Acciones.LogOn, Usu, null); this.Close(); } }
public UsuarioConectado(Lbl.Personas.Usuario usuario) { this.Usuario = usuario; }
/// <summary> /// Inicia la interfaz gráfica del programa. /// </summary> private static Lfx.Types.OperationResult IniciarGui() { int Configurado = Lfx.Workspace.Master.CurrentConfig.ReadGlobalSetting<int>("Sistema.Configurado", 0); if ((Configurado == 0 && Lbl.Sys.Config.Empresa.ClaveTributaria == null) || string.IsNullOrEmpty(Lbl.Sys.Config.Empresa.Nombre)) { Config.Preferencias FormConfig = new Config.Preferencias(); FormConfig.PrimeraVez = true; if (FormConfig.ShowDialog() != DialogResult.OK) Ejecutor.Exec("QUIT"); } System.DateTime FechaServidor = System.Convert.ToDateTime(Lfx.Workspace.Master.MasterConnection.FirstRowFromSelect("SELECT NOW()")[0]); System.TimeSpan Diferencia = FechaServidor - System.DateTime.Now; if (Math.Abs(Diferencia.TotalMinutes) > 10) { string DiferenciaExplicada = ""; if (Math.Abs(Diferencia.TotalDays) >= 2) DiferenciaExplicada = Math.Ceiling(Math.Abs(Diferencia.TotalDays)).ToString() + " días"; else if (Math.Abs(Diferencia.TotalHours) >= 2) DiferenciaExplicada = Math.Ceiling(Math.Abs(Diferencia.TotalHours)).ToString() + " horas"; else DiferenciaExplicada = Math.Ceiling(Math.Abs(Diferencia.TotalMinutes)).ToString() + " minutos"; Lfx.Workspace.Master.RunTime.Toast("Existe una diferencia de " + DiferenciaExplicada + " entre el reloj del servidor SQL y el reloj de este equipo. Es necesario que revise y ajuste el reloj de ambos equipos a la brevedad.", "Error de fecha y hora"); } // Si el administrador tiene la contraseña predeterminada y aquí entro siempre como administrador // o todavía no entré nunca, ingreso directamente sin pedir contraseña. int UltimoUsuario = Lfx.Workspace.Master.CurrentConfig.ReadGlobalSetting<int>("Sistema.Ingreso.UltimoUsuario", 1); if(UltimoUsuario == 1) { Lbl.Personas.Usuario Usu = new Lbl.Personas.Usuario(Lfx.Workspace.Master.MasterConnection, 1); if (Usu.ContrasenaValida("admin")) Lbl.Sys.Config.Actual.UsuarioConectado = new Lbl.Sys.Configuracion.UsuarioConectado(Usu); } if (Lbl.Sys.Config.Actual.UsuarioConectado.Id == 0) { using (Lazaro.WinMain.Misc.Ingreso FormIngreso = new Lazaro.WinMain.Misc.Ingreso()) { FormIngreso.Connection = Lfx.Workspace.Master.MasterConnection; FormIngreso.ShowDialog(); } } if (Lbl.Sys.Config.Actual.UsuarioConectado.Id > 0) { if (Lfx.Workspace.Master.SlowLink == false && Lfx.Workspace.Master.CurrentConfig.ReadGlobalSetting<string>("Sistema.Backup.Tipo", "0") == "2") { string FechaActual = System.DateTime.Now.ToString("yyyy-MM-dd"); string FechaBackup = Lfx.Workspace.Master.CurrentConfig.ReadGlobalSetting<string>("Sistema.Backup.Ultimo", ""); if (FechaActual != FechaBackup) { int Articulos = Lfx.Workspace.Master.MasterConnection.FieldInt("SELECT COUNT(id_articulo) FROM articulos"); if (Articulos > 0) { //Hago un backup automático, una vez por día, siempre que haya al menos 1 artículo en la BD //Esto es para evitar hacer backup de una BD vacía Ejecutor.Exec("BACKUP NOW"); Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Sistema.Backup.Ultimo", FechaActual); } } } // Mostrar qué hay de nuevo string FechaWhatsnew = Lfx.Workspace.Master.CurrentConfig.ReadGlobalSetting<string>("Usuario." + Lbl.Sys.Config.Actual.UsuarioConectado.Id.ToString() + ".Whatsnew.Ultimo", "firsttime"); if (FechaWhatsnew == "firsttime") { // Primera vez que entra. No muestro qué hay de nuevo (TODO: pero podría darle una bienvenida) Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Usuario." + Lbl.Sys.Config.Actual.UsuarioConectado.Id.ToString() + ".Whatsnew.Ultimo", System.DateTime.Now.ToString("yyyy-MM-dd")); } else { // Veo si hay novedades para mostrar // string FechaWhatsnewOriginal = FechaWhatsnew; System.IO.StreamReader Whatsnew = new System.IO.StreamReader(System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("Lazaro.whatsnew.txt")); System.Text.StringBuilder Mostrar = null; bool Mostrando = false; while (Whatsnew.EndOfStream == false) { string Linea = Whatsnew.ReadLine(); if (Linea.Length > 4 && Linea.Substring(0, 4) == "*** ") { string FechaLinea = Linea.Substring(4, Linea.Length - 4); if (string.Compare(FechaLinea, FechaWhatsnew) > 0) { FechaWhatsnew = FechaLinea; Linea = Lfx.Types.Parsing.ParseDate(FechaLinea).Value.ToString(Lfx.Types.Formatting.DateTime.LongDatePattern) + ":"; Mostrando = true; } } if (Mostrando) { if (Mostrar == null) { Mostrar = new System.Text.StringBuilder(); Mostrar.AppendLine("Por favor tómese un momento para leer sobre las novedades incorporadas recientemente en Lázaro:"); Mostrar.AppendLine(""); } Mostrar.AppendLine(Linea.Replace("* ", "• ")); } } Whatsnew.BaseStream.Close(); Whatsnew.Close(); if (Mostrar != null && Mostrar.Length > 0) { Lfx.Workspace.Master.RunTime.Toast(Mostrar.ToString(), "Novedades"); Lfx.Workspace.Master.CurrentConfig.WriteGlobalSetting("Usuario." + Lbl.Sys.Config.Actual.UsuarioConectado.Id.ToString(), "Whatsnew.Ultimo", FechaWhatsnew); } } // Mostrar el formulario Lfx.Workspace.Master.MainForm = new Principal.Inicio(); Aplicacion.FormularioPrincipal.Show(); if (FechaWhatsnew == "firsttime") { Lui.Forms.YesNoDialog Pregunta = new Lui.Forms.YesNoDialog("¡Hola! ¿Le gustaría ver una página sencilla con un poco de información sobre cómo utilizar Lázaro?", "Primeros pasos"); Pregunta.DialogButtons = Lui.Forms.DialogButtons.YesNo; if (Pregunta.ShowDialog() == DialogResult.OK) Help.ShowHelp(Aplicacion.FormularioPrincipal, "http://www.lazarogestion.com/?q=node/44"); } else { string RunTimeName = Lfx.Environment.SystemInformation.RuntimeName; // Verifico la presencia de .NET Framework 3.5 if (Lfx.Environment.SystemInformation.RunTime == Lfx.Environment.SystemInformation.RunTimes.DotNet && RunTimeName.IndexOf("3.5") < 0) { Lui.Forms.YesNoDialog Pregunta = new Lui.Forms.YesNoDialog("Es necesario instalar un componente para el correcto funcionamiento de Lázaro. El componente es Microsoft .NET Framework versión 3.5. ¿Desea ir a la página de descarga para instalarlo ahora?", "Advertencia"); Pregunta.DialogButtons = Lui.Forms.DialogButtons.YesNo; if (Pregunta.ShowDialog() == DialogResult.OK) Help.ShowHelp(Aplicacion.FormularioPrincipal, "http://download.microsoft.com/download/5/3/4/5347CEDC-6A83-49F5-9347-BCD58A9AAE25/DotNetFx35ClientSetup.exe"); } } Application.Run(Aplicacion.FormularioPrincipal); } return new Lfx.Types.SuccessOperationResult(); }