public List <AccesoGlobalBE> ListaAccesos(PermisoBE pPermisoBE) { List <AccesoGlobalBE> lstAccesoGlobalBE = new List <AccesoGlobalBE>(); IDataReader dr = null; try { using (DbCommand cmd = dbFENIXSEG.GetStoredProcCommand(GetNameStoreProcedure.spSelectViewPermisosTM)) { cmd.CommandTimeout = 0; dbFENIXSEG.AddInParameter(cmd, "@rolID", System.Data.DbType.String, pPermisoBE.rolID); dbFENIXSEG.AddInParameter(cmd, "@usuarioID", System.Data.DbType.String, pPermisoBE.usuarioID); dbFENIXSEG.AddInParameter(cmd, "@plataformaID", System.Data.DbType.String, pPermisoBE.plataformaID); dbFENIXSEG.AddInParameter(cmd, "@moduloID", System.Data.DbType.String, pPermisoBE.moduloID); dr = dbFENIXSEG.ExecuteReader(cmd); while (dr.Read()) { lstAccesoGlobalBE.Add(AccesoGlobalP.ObtenerAcceso(dr)); } } } catch (Exception) { if (dr != null && !dr.IsClosed) { dr.Close(); } throw; } return(lstAccesoGlobalBE); }
private void AgregarAlArbol(PermisoBE permiso, TreeNode nodoPadre, int nivel) { TreeNode nodo = new TreeNode(permiso.ToString()) { Tag = permiso }; List <PermisoBE> permisosHijos = permiso.DevolverPerfil(); foreach (PermisoBE p in permisosHijos) { // Pongo este nivel como método de seguridad contra los permisos anidados de manera cíclica if (nivel < 10) { AgregarAlArbol(p, nodo, nivel + 1); } } if (nodoPadre == null) { trvPermisosAsignados.Nodes.Add(nodo); } else { nodoPadre.Nodes.Add(nodo); } }
private static PermisoBE ObtenerPermiso(int permisoId, int profundidad) { PermisoBE permiso; List <int> hijosIds = new List <int>(); if (profundidad < 10) { hijosIds = ObtenerPermisosHijos(permisoId); } if (hijosIds.Any()) { // Es un permiso compuesto permiso = new PermisoCompuestoBE(); foreach (int hijoId in hijosIds) { PermisoBE permisoHijo = ObtenerPermiso(hijoId, profundidad + 1); permiso.AgregarPermisoHijo(permisoHijo); } } else { // Es un permiso simple permiso = new PermisoSimpleBE(); } CompletarPermiso(permiso, permisoId); return(permiso); }
public static void Borrar(PermisoBE permiso) { PermisoDAL.Guardar(permiso, false, false); // Guardo la bitácora Bitacora.Loguear("Se eliminó el permiso con Id " + permiso.Id); }
public bool ValidarPermiso(int id, List <PermisoBE> lista) { bool contiene = false; if (lista != null) { foreach (var perm in lista) { if (perm.Id.Equals(id)) { contiene = true; break; } PermisoBLL permisoBLL = new PermisoBLL(); PermisoBE permiso = new PermisoBE(); permiso.Id = perm.Id; permiso = permisoBLL.Consulta(ref permiso); FamiliaBE familia = new FamiliaBE(permiso); familia.Permisos = permisoBLL.ConsultaPermisos(familia); foreach (var permisoHijo in familia.Permisos) { if (permisoHijo.Id.Equals(id)) { contiene = true; break; } } } } return(contiene); }
private void BtnAgregarFamilia_Click(object sender, EventArgs e) { PermisoBE familiaSeleccionada = (PermisoBE)cmbFamilias.SelectedItem; permisoActual.AgregarPermisoHijo(familiaSeleccionada); RefrescarArbol(); }
private void BtnQuitar_Click(object sender, EventArgs e) { PermisoBE permisoSeleccionado = (PermisoBE)trvPermisosAsignados.SelectedNode.Tag; permisoActual.QuitarPermisoHijo(permisoSeleccionado); RefrescarArbol(); }
private void BtnAgregarPermiso_Click(object sender, EventArgs e) { PermisoBE permisoSeleccionado = (PermisoBE)cmbPermisos.SelectedItem; permisoActual.AgregarPermisoHijo(permisoSeleccionado); RefrescarArbol(); }
private void loadMenu() { List <AccesoGlobalBE> lstAccesoGlobalBE = new List <AccesoGlobalBE>(); List <AccesoGlobalBE> lstAccesoGlobalBEPadre = new List <AccesoGlobalBE>(); List <AccesoGlobalBE> lstAccesoGlobalBEHijo = new List <AccesoGlobalBE>(); AccesoGlobalBL oAccesoGlobalBL = new AccesoGlobalBL(); ToolStripMenuItem subMenuPadre; ToolStripMenuItem subMenuHijo; if (mnuDinamico.Items.Count > 0) { return; } string rolID = General.gRol; string usuarioID = General.GetUsuario; string plataformaID = "0010000000005PT "; string moduloID = "0010000000001MD "; PermisoBE oPermisoBE = new PermisoBE(); oPermisoBE.rolID = rolID.ToString(); oPermisoBE.usuarioID = usuarioID.ToString(); oPermisoBE.plataformaID = plataformaID.Trim(); oPermisoBE.moduloID = moduloID.Trim(); lstAccesoGlobalBE = oAccesoGlobalBL.ListaAccesos(oPermisoBE); lstAccesoGlobalBEPadre = lstAccesoGlobalBE.FindAll(x => x.menPadre == 0 && x.perEstado); lstAccesoGlobalBEPadre.Sort((x, y) => x.menPosicion.CompareTo(y.menPosicion)); mnuDinamico.Items.Clear(); foreach (AccesoGlobalBE item in lstAccesoGlobalBEPadre) { lstAccesoGlobalBEHijo = lstAccesoGlobalBE.FindAll(x => x.menPadre == item.menPosicion && x.perEstado); lstAccesoGlobalBEHijo.Sort((x, y) => x.menPosicion.CompareTo(y.menPosicion)); subMenuPadre = new ToolStripMenuItem() { Text = item.menNomPublico, Name = item.menNomInterno, Tag = item.menNomInterno }; foreach (AccesoGlobalBE itemHijo in lstAccesoGlobalBEHijo) { subMenuHijo = new ToolStripMenuItem() { Text = itemHijo.menNomPublico, Name = itemHijo.menNomInterno, Tag = itemHijo.menNomInterno }; subMenuHijo.Click += new System.EventHandler(abrirFormulario); subMenuPadre.DropDownItems.Add(subMenuHijo); } mnuDinamico.Items.Add(subMenuPadre); } }
private void BtnCrearNuevo_Click(object sender, EventArgs e) { lstPerfilesActuales.SelectedItem = null; txtNombre.Enabled = true; txtDescripcion.Enabled = true; grpFamiliasPermisos.Enabled = true; btnGuardar.Enabled = true; permisoActual = Permiso.NuevoPerfil(); }
public static void Guardar(PermisoBE permiso) { PermisoDAL.Guardar(permiso, true, true); // Guardo la bitácora string mensajeBitacora = permiso.Id > 0 ? "Se actualizó el permiso con Id " + permiso.Id : "Se creó un nuevo permiso. Nombre: " + permiso.Nombre; Bitacora.Loguear(mensajeBitacora); }
public List <PermisoBE> ConsultaRango(PermisoBE filtroDesde, PermisoBE filtroHasta) { try { return(this._dao.ConsultaRango(filtroDesde, filtroHasta)); } catch (Exception ex) { throw new Exception("No se puede consultar por rango.", ex); } }
private static void Insertar(PermisoBE permiso) { string query = "INSERT INTO permiso (nombre, descripcion) OUTPUT INSERTED.id VALUES (@nombre, @descripcion)"; SqlParameter[] parameters = { new SqlParameter("@nombre", permiso.Nombre), new SqlParameter("@descripcion", permiso.Descripcion) }; permiso.Id = SqlHelper.Insertar(query, parameters); }
private void ResetearFormulario() { txtNombre.Text = ""; txtDescripcion.Text = ""; txtNombre.Enabled = false; txtDescripcion.Enabled = false; grpFamiliasPermisos.Enabled = false; btnGuardar.Enabled = false; btnQuitar.Enabled = false; trvPermisosAsignados.Nodes.Clear(); permisoActual = null; }
private static void Actualizar(PermisoBE permiso, bool habilitado) { string query = "UPDATE permiso SET nombre = @nombre, descripcion = @descripcion, habilitado = @habilitado WHERE id = @id"; SqlParameter[] parameters = { new SqlParameter("@nombre", permiso.Nombre), new SqlParameter("@descripcion", permiso.Descripcion), new SqlParameter("@habilitado", habilitado), new SqlParameter("@id", permiso.Id) }; SqlHelper.Ejecutar(query, parameters); }
private void TildarPermisosUsuario(UsuarioBE usuario, TreeNodeCollection nodosABuscar) { foreach (TreeNode nodo in nodosABuscar) { if (!nodo.Checked) { PermisoBE permiso = (PermisoBE)nodo.Tag; if (usuario.Perfil.Contains(permiso, new PermisoBE.Comparador())) { _editando = true; nodo.Checked = true; _editando = false; } TildarPermisosUsuario(usuario, nodo.Nodes); } } }
private void LstPerfilesActuales_SelectedIndexChanged(object sender, EventArgs e) { ResetearFormulario(); cmbFamilias.DataSource = todosLosPerfiles.ToList(); if (lstPerfilesActuales.SelectedItem != null) { permisoActual = (PermisoBE)lstPerfilesActuales.SelectedItem; btnEditar.Enabled = true; btnEliminar.Enabled = true; txtNombre.Text = permisoActual.Nombre; txtDescripcion.Text = permisoActual.Descripcion; cmbFamilias.DataSource = todosLosPerfiles.Where(p => p.Id != permisoActual.Id).ToList(); RefrescarArbol(); } }
public static PermisoBE getPermiso(IDataReader dr) { PermisoBE oPermisoBE = new PermisoBE(); if (!dr.IsDBNull(dr.GetOrdinal("plataformaID"))) { oPermisoBE.usuarioID = dr.GetString(dr.GetOrdinal("plataformaID")); } if (!dr.IsDBNull(dr.GetOrdinal("plataformaID"))) { oPermisoBE.rolID = dr.GetString(dr.GetOrdinal("plataformaID")); } if (!dr.IsDBNull(dr.GetOrdinal("plataformaID"))) { oPermisoBE.plataformaID = dr.GetString(dr.GetOrdinal("plataformaID")); } if (!dr.IsDBNull(dr.GetOrdinal("plataformaID"))) { oPermisoBE.plataformaNom = dr.GetString(dr.GetOrdinal("plataformaID")); } if (!dr.IsDBNull(dr.GetOrdinal("plataformaID"))) { oPermisoBE.moduloID = dr.GetString(dr.GetOrdinal("plataformaID")); } if (!dr.IsDBNull(dr.GetOrdinal("plataformaID"))) { oPermisoBE.moduloNom = dr.GetString(dr.GetOrdinal("plataformaID")); } if (!dr.IsDBNull(dr.GetOrdinal("plataformaID"))) { oPermisoBE.plaNumOrden = dr.GetInt32(dr.GetOrdinal("plataformaID")); } if (!dr.IsDBNull(dr.GetOrdinal("plataformaID"))) { oPermisoBE.modNumOrden = dr.GetInt32(dr.GetOrdinal("plataformaID")); } return(oPermisoBE); }
private static void CompletarPermiso(PermisoBE permiso, int permisoId) { string query = "SELECT nombre, descripcion FROM permiso WHERE id = @id"; SqlParameter[] parameters = new SqlParameter[] { new SqlParameter("@id", permisoId) }; DataTable table = SqlHelper.Obtener(query, parameters); if (table.Rows.Count > 0) { permiso.Id = permisoId; permiso.Nombre = table.Rows[0]["nombre"].ToString(); permiso.Descripcion = table.Rows[0]["descripcion"].ToString(); } }
private void BtnEliminar_Click(object sender, EventArgs e) { try { DialogResult result = MessageBox.Show(ObtenerLeyenda("msgEliminar"), ObtenerLeyenda("msgEliminarTitulo"), MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation); if (result == DialogResult.Yes) { PermisoBE permiso = (PermisoBE)lstPerfilesActuales.SelectedItem; Permiso.Borrar(permiso); ActualizarPerfiles(); ResetearFormulario(); } } catch { MostrarError(); } }
private void AgregarAlArbol(PermisoBE permiso, TreeNode nodoPadre) { TreeNode nodo = new TreeNode(permiso.ToString()) { Tag = permiso }; List <PermisoBE> permisosHijos = permiso.DevolverPerfil(); foreach (PermisoBE p in permisosHijos) { AgregarAlArbol(p, nodo); } if (nodoPadre == null) { trvPermisos.Nodes.Add(nodo); } else { nodoPadre.Nodes.Add(nodo); } }
public static List <PermisoBE> ObtenerPorUsuario(int usuarioId) { string query = "SELECT p.id " + "FROM usuario_permiso up " + "JOIN permiso p ON p.id = up.permiso_id " + "WHERE up.usuario_id = @usuarioId " + "AND p.habilitado = 1;"; SqlParameter[] parameters = new SqlParameter[] { new SqlParameter("@usuarioId", usuarioId) }; DataTable table = SqlHelper.Obtener(query, parameters); List <PermisoBE> permisos = new List <PermisoBE>(); foreach (DataRow row in table.Rows) { PermisoBE permiso = ObtenerPermiso(int.Parse(row["id"].ToString()), 1); permisos.Add(permiso); } return(permisos); }
public static List <PermisoBE> ObtenerPerfiles() { string query = "SELECT DISTINCT p.id " + "FROM permiso p " + "INNER JOIN permiso_permiso pp ON p.id = pp.permiso_padre_id " + "WHERE p.habilitado = 1"; try { DataTable table = SqlHelper.Obtener(query, new SqlParameter[0]); List <PermisoBE> perfiles = new List <PermisoBE>(); foreach (DataRow row in table.Rows) { PermisoBE permiso = ObtenerPermiso(int.Parse(row["id"].ToString()), 1); perfiles.Add(permiso); } return(perfiles); } catch (Exception ex) { Log.Grabar(ex); return(new List <PermisoBE>()); } }
public static void Guardar(PermisoBE permiso, bool habilitado, bool actualizarHijos) { // Primero guardo los datos del permiso en sí if (permiso.Id > 0) { Actualizar(permiso, habilitado); } else { Insertar(permiso); } // Luego guardo los permisos hijos if (permiso.Id > 0 && actualizarHijos) { // Borro permisos hijos string query = "DELETE FROM permiso_permiso WHERE permiso_padre_id = @permisoPadreId"; SqlParameter[] parameters = { new SqlParameter("@permisoPadreId", permiso.Id) }; SqlHelper.Ejecutar(query, parameters); // Inserto cada uno de los permisos hijos query = "INSERT INTO permiso_permiso (permiso_padre_id, permiso_hijo_id) VALUES (@permisoPadreId, @permisoHijoId)"; foreach (PermisoBE hijo in permiso.DevolverPerfil()) { parameters = new SqlParameter[2] { new SqlParameter("@permisoPadreId", permiso.Id), new SqlParameter("@permisoHijoId", hijo.Id) }; SqlHelper.Ejecutar(query, parameters); } } }
public List <AccesoGlobalBE> ListaAccesos(PermisoBE pPermisoBE) { return(oAccesoGlobalDA.ListaAccesos(pPermisoBE)); }
public List <PermisoBE> ConsultaRango(PermisoBE filtroDesde, PermisoBE filtroHasta) { throw new NotImplementedException(); }