/// <summary> /// ''' Permite habilitrar los modulos a los que el usuario tiene acceo en base a sus permisos en la base de datos /// ''' </summary> /// ''' <remarks></remarks> public void HabilitaModulos() { // Permiso de acceso a modulos. try { DataTable dt; LnSistema objLnSistema = new LnSistema(ModUsuario.SessionObjEnDatosConn); string strError = null; dt = objLnSistema.ConsultaPermisosPMM(ModUsuario.SessionIdUsuario, ref strError); if (dt != null) { BindingSource bind = new BindingSource { DataSource = dt }; // Se habilitan los botones de acceso a los modulos btnSistema.Enabled = bind.Find("IdModulo", ClsEnumeradores.Modulos.Sistema) >= 0; btnCatálogos.Enabled = bind.Find("IdModulo", ClsEnumeradores.Modulos.Catalogos) >= 0; btnVentas.Enabled = bind.Find("IdModulo", ClsEnumeradores.Modulos.Ventas) >= 0; } } catch (Exception) { throw; } }
/// <summary> /// ''' Genera los menus del formulario dinámicamente /// ''' </summary> /// ''' <param name="Menu">mnuCatalagos</param> /// ''' <param name="BarraBotones">Barra de botones</param> /// ''' <param name="IdUsuario">Identificador del usuario</param> /// ''' <param name="IdModulo">Identificador del módulo</param> /// ''' <remarks></remarks> private void GeneraMenu(ref MenuStrip Menu, ref ToolStrip BarraBotones, int IdUsuario, int IdModulo) { LnSistema objLnSistema = new LnSistema(ModUsuario.SessionObjEnDatosConn); DataTable dtMenus; DataTable dtAcciones; string Mensaje; // Limpiamos tanto el menu como la barra de botones y les indicamos la lista de imagenes que tomará Menu.Items.Clear(); BarraBotones.Items.Clear(); Menu.ImageList = imgListBotones; BarraBotones.ImageList = imgListBotones; // Llenamos el DataTable con los menus que tiene el modulo que se mande por referencia Mensaje = ""; dtMenus = objLnSistema.ConsultaPermisosPMM(IdUsuario, ref Mensaje, IdModulo, 0); // Validamos que no haya ocurrido ningun error if (Mensaje != "") { MessageBox.Show(Mensaje, "Error al cargar el menu", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // Revisamos que haya menus a los que tenga acceso el usuario if (dtMenus.Rows.Count == 0) { MessageBox.Show("No tienes menus habilitados en este módulo", "Modulo denegado", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } // Recorremos los renglones para construir el menu con las opciones foreach (DataRow drMenu in dtMenus.Rows) { ToolStripMenuItem mnuItem = new ToolStripMenuItem(); // Agregamos el menuitem que trae las opciones al menustrip Menu.Items.Add(mnuItem); { var withBlock = mnuItem; withBlock.Text = drMenu["Menu"].ToString(); withBlock.Name = "mnu" + drMenu["IdMenu"].ToString(); // Si trae imagen, se la asignamos al menu if (drMenu["imagen"].ToString() != "") { withBlock.Image = imgListBotones.Images[drMenu["imagen"].ToString()]; } // Si trae texto de ayuda lo ponemos if (drMenu["ayuda"].ToString() != "") { withBlock.ToolTipText = drMenu["ayuda"].ToString(); } // Obtenemos las acciones, osea los items de cada menu segun los permisos del usuario dtAcciones = objLnSistema.ConsultaPermisosPMM(IdUsuario, ref Mensaje, IdModulo, (int)drMenu["IdMenu"]); // Agregamos las opciones del menu, en base a las acciones del menu foreach (DataRow drMenuItem in dtAcciones.Rows) { ToolStripItem botonStrip = null /* TODO Change to default(_) if this is not a reference type */; string mnuItemNombre = "mnuItem" + drMenuItem["IdAccion"].ToString().Trim(); string mnuBotonItemNombre = "tsboton" + drMenuItem["IdAccion"].ToString().Trim(); // Creamos la opcion del menu ToolStripMenuItem mnuItemOpcion = new ToolStripMenuItem(drMenuItem["Accion"].ToString().Trim(), null, new EventHandler(Menu_Click)); // Si el valor del campo boton es true, generamos un boton que haga referencia if ((bool)drMenuItem["boton"]) { botonStrip = new ToolStripButton(drMenuItem["Accion"].ToString().Trim(), null, new EventHandler(Menu_Click)); botonStrip.DisplayStyle = ToolStripItemDisplayStyle.Image; BarraBotones.Items.Add(botonStrip); if ((bool)drMenuItem["separador"]) { BarraBotones.Items.Add(new ToolStripSeparator()); } } // Si trae un separador esta opcion, lo agregamos if ((bool)drMenuItem["separador"] & (int)drMenuItem["Orden"] != 1) { withBlock.DropDownItems.Add("-"); } withBlock.DropDownItems.Add(mnuItemOpcion); { var withBlock1 = mnuItemOpcion; withBlock1.Name = mnuItemNombre; if ((bool)drMenuItem["boton"]) { botonStrip.Name = mnuBotonItemNombre; } // Si trae imagen, se la asignamos al menu if (drMenuItem["imagen"].ToString() != "") { withBlock1.Image = imgListBotones.Images[drMenuItem["imagen"].ToString()]; // Agregamo la imagen al boton de acceso rapido if ((bool)drMenuItem["boton"]) { botonStrip.Image = imgListBotones.Images[drMenuItem["imagen"].ToString()]; } } // Si trae texto de ayuda lo ponemos if (drMenuItem["ayuda"].ToString() != "") { withBlock1.ToolTipText = drMenuItem["ayuda"].ToString(); // Agregamo la ayuda al boton de acceso rapido if ((bool)drMenuItem["boton"]) { botonStrip.ToolTipText = drMenuItem["ayuda"].ToString(); } } // Verificamos si trae teclas de acceso rapido if (drMenuItem["Caracter"].ToString().Trim() != "") { int CodigoTecla; CodigoTecla = int.Parse(drMenuItem["Caracter"].ToString()); CodigoTecla += (bool)drMenuItem["Ctrl"] ? (int)ClsEnumeradores.TeclasAtajos.Ctrl : 0; CodigoTecla += (bool)drMenuItem["Alt"] ? (int)ClsEnumeradores.TeclasAtajos.Alt : 0; CodigoTecla += (bool)drMenuItem["Shift"] ? (int)ClsEnumeradores.TeclasAtajos.Shift : 0; withBlock1.ShortcutKeys = (Keys)CodigoTecla; withBlock1.ShowShortcutKeys = true; } } } } } // Una vez creados los menus a partir de la bd, se generá el menu de "ver" ToolStripMenuItem tsmnuVer = new ToolStripMenuItem(); tsmnuBarraHerramientas = new ToolStripMenuItem("&Barra de herramientas", imgListBotones.Images[""], new EventHandler(Menu_Click)); tsmnuBarraEstado = new ToolStripMenuItem("B&arra de estado", imgListBotones.Images[""], new EventHandler(Menu_Click)); tsmnuBarraHerramientas.Checked = true; tsmnuBarraHerramientas.CheckOnClick = true; tsmnuBarraHerramientas.CheckState = CheckState.Checked; tsmnuBarraHerramientas.Name = "mnuItemBarraHerrmaientas"; tsmnuBarraEstado.Checked = true; tsmnuBarraEstado.CheckOnClick = true; tsmnuBarraEstado.CheckState = CheckState.Checked; tsmnuBarraEstado.Name = "mnuItemBarraEstado"; tsmnuVer.Text = "&Ver"; tsmnuVer.Name = "mnuVer"; // Agregamos las opciones que tendra el menu de ver tsmnuVer.DropDown.Items.Add(tsmnuBarraHerramientas); tsmnuVer.DropDown.Items.Add(tsmnuBarraEstado); Menu.Items.Add(tsmnuVer); Menu.MdiWindowListItem = tsmnuVer; // Se genera el menu de "ventana" var toolmnuVentana = new ToolStripMenuItem(); { toolmnuVentana.Text = "V&entanas"; toolmnuVentana.Name = "mnuVentanas"; // Agregamos las opciones que tendra el menu de ventanas toolmnuVentana.DropDown.Items.Add("Cascada", imgListBotones.Images["VentanasCascada.png"], new EventHandler(Menu_Click)).Name = "mnuItemCascada"; toolmnuVentana.DropDown.Items.Add("Horizontal", imgListBotones.Images["VentanasHorizontal.png"], new EventHandler(Menu_Click)).Name = "mnuItemHorizontal"; toolmnuVentana.DropDown.Items.Add("Vertical", imgListBotones.Images["VentanasVertical.png"], new EventHandler(Menu_Click)).Name = "mnuItemVertical"; toolmnuVentana.DropDown.Items.Add("Cerrar Todo", imgListBotones.Images["Delete3.png"], new EventHandler(Menu_Click)).Name = "mnuItemCerrarTodo"; } Menu.Items.Add(toolmnuVentana); Menu.MdiWindowListItem = toolmnuVentana; // Se genera el menu de "salir" //Menu.Items.Add("&Salir", imgListBotones.Images["Cancel2.png"], new EventHandler(Menu_Click)).Name = "mnuItemSalir"; }
private void frmSistema_Shown(object sender, EventArgs e) { // Ocultar pestaña de correos tpIsisMail.Parent = null; // Se crean objetos de usuarios string strError = null; try { // registro del acceso al modulo ObjFunciones.RegistraSesion((int)ClsEnumeradores.Modulos.Sistema, (int)ClsEnumeradores.AccionesSesion.IngresoModulo); // Permisos para la visualizacion de menus DataTable dt; dt = ObjLnSistema.ConsultaPermisosPMM(ModUsuario.SessionIdUsuario, ref strError, (int)ClsEnumeradores.Modulos.Sistema); if (dt != null & dt.Rows.Count > 0) { BindingSource bind = new BindingSource { DataSource = dt }; if (bind.Find("IdMenu", ClsEnumeradores.Menus.Perfiles) < 0) { TbcSistema.TabPages[0].Parent = null; } if (bind.Find("IdMenu", ClsEnumeradores.Menus.Usuarios) < 0) { TbcSistema.TabPages[1].Parent = null; } } else { TbcSistema.TabPages["tbpGrupoUsuarios"].Parent = null; TbcSistema.TabPages["TbpUsuarios"].Parent = null; } // Permisos para la visualizacion de botones (acciones de sistema) Perfiles dt = ObjLnSistema.ConsultaPermisosPMM(ModUsuario.SessionIdUsuario, ref strError, (int)ClsEnumeradores.Modulos.Sistema, (int)ClsEnumeradores.Menus.Perfiles); if (dt != null & dt.Rows.Count > 0) { BindingSource bind = new BindingSource { DataSource = dt }; // Se habilitan los botones de acceso a los modulos TsbNuevoPerfil.Enabled = bind.Find("IdAccion", ClsEnumeradores.AccionesSistema.AltaPerfil) >= 0 ? true : false; TsbActualizar.Enabled = bind.Find("IdAccion", ClsEnumeradores.AccionesSistema.ActualizacionPerfil) >= 0 ? true : false; TsbInactivar.Enabled = bind.Find("IdAccion", ClsEnumeradores.AccionesSistema.CambioStatusPerfil) >= 0 ? true : false; cmsOpPermisos.Enabled = bind.Find("IdAccion", ClsEnumeradores.AccionesSistema.AsignacionPermisos) >= 0 ? true : false; cmsPermisoTodo.Enabled = bind.Find("IdAccion", ClsEnumeradores.AccionesSistema.AsignacionPermisos) >= 0 ? true : false; } // Permisos para la visualizacion de botones (acciones de sistema) Usuarios dt = ObjLnSistema.ConsultaPermisosPMM(ModUsuario.SessionIdUsuario, ref strError, (int)ClsEnumeradores.Modulos.Sistema, (int)ClsEnumeradores.Menus.Usuarios); if (dt != null & dt.Rows.Count > 0) { BindingSource bind = new BindingSource { DataSource = dt }; // Se habilitan los botones de acceso a los modulos TsbNuevoUsuario.Enabled = bind.Find("IdAccion", ClsEnumeradores.AccionesSistema.AltaUsuario) >= 0 ? true : false; TsbActualizarUsuario.Enabled = bind.Find("IdAccion", ClsEnumeradores.AccionesSistema.ActualizacionUsuario) >= 0 ? true : false; TsbInactivarUsuario.Enabled = bind.Find("IdAccion", ClsEnumeradores.AccionesSistema.CambioStatusUsuario) >= 0 ? true : false; tsbResetPsw.Enabled = bind.Find("IdAccion", ClsEnumeradores.AccionesSistema.ReseteoContraseña) >= 0 ? true : false; //tsbReporteUsuarios.Enabled = bind.Find("IdAccion", ClsEnumeradores.AccionesSistema.ReportesUsuarios) >= 0 ? true : false; tsbMonitorUsuarios.Enabled = bind.Find("IdAccion", ClsEnumeradores.AccionesSistema.MonitorUsuarios) >= 0 ? true : false; } CargarDgvPerfiles(); CargarDgvUsuarios(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); Close(); } }