Public Class ControlesPermisos
#Region "DECLARACION"
Private Shared Menu As System.Windows.Forms.ToolStripMenuItem
Private Shared SubMenu As System.Windows.Forms.ToolStripDropDownItem
Private Shared submenu_ As System.Windows.Forms.ToolStripItem
Public Shared mDtListadoControles = New DataTable
Private Shared objPedidosRN = New VMPedidosRN.PedidosRN
#End Region
#Region "FUNCIONES"
Public Shared Sub RegistrarControles(ByRef unform As Form) ' esta registra los controles de la aplicacion seguridad plues nada mas
Dim nombreControl As String
Dim descripcionControl As String = "testing-Seguridad"
Dim descripcionControlRibbon As String = "testing-Ribbon"
Try
objPedidosRN = New VMPedidosRN.PedidosRN
objPedidosRN.InicializarBase()
'objAdmVentas_RN = New AdmVentas_RN.AdmVentas_RN
'objAdmVentas_RN.InicializarBase()
'Solapas = New DevExpress.XtraBars.Ribbon.RibbonPage
'Grupo = New DevExpress.XtraBars.Ribbon.RibbonPageGroup
'Category = New DevExpress.XtraBars.Ribbon.RibbonPageCategory
'Dim sol As String = Category.Name
Dim Ctrl As Control
For i As Integer = 0 To unform.Controls.Count - 1
Ctrl = unform.Controls.Item(i)
If Ctrl.Name <> "" Then
If TypeOf (Ctrl) Is System.Windows.Forms.Control Then 'TypeOf (Ctrl) Is System.Windows.Forms.Form Or
nombreControl = Ctrl.Name
RegistroItems(Ctrl, unform)
Else
nombreControl = Ctrl.Name
objPedidosRN.SP_HERRAMIENTAS_SIGMA_SEGURIDAD_INGRESAR_CONTROL_POR_APLICACION(My.Application.IDAPLICACION, nombreControl, descripcionControl)
End If
End If
Next
Catch ex As Exception
MessageBox.Show("" + ex.ToString)
End Try
End Sub
'registro automatico de los controles ingresados al menu
Public Shared Sub RegistroItems(ByRef unControl As System.Windows.Forms.Control, ByRef unform As Form)
Dim Menu As System.Windows.Forms.ToolStripMenuItem
Dim SubMenu As System.Windows.Forms.ToolStripDropDownItem
Dim submenu_ As System.Windows.Forms.ToolStripItem
Dim I, H As Integer
Dim NombreControl, DescripcionControl As String
Try
For Each Menu In unform.MainMenuStrip.Items
NombreControl = Menu.Name
DescripcionControl = Menu.Text
If DescripcionControl = "" Then
DescripcionControl = Menu.Name
Else
DescripcionControl = Menu.Text
End If
objPedidosRN.SP_HERRAMIENTAS_SIGMA_SEGURIDAD_INGRESAR_CONTROL_POR_APLICACION(My.Application.IDAPLICACION, NombreControl, DescripcionControl)
For I = 0 To Menu.DropDownItems.Count - 1
If Menu.DropDownItems.Item(I).GetType().FullName = "System.Windows.Forms.ToolStripMenuItem" Then '---->Menu
SubMenu = Menu.DropDownItems.Item(I) '--->opciones del menu
NombreControl = SubMenu.Name
DescripcionControl = SubMenu.Text
If DescripcionControl = "" Then
DescripcionControl = Menu.Name + " / " + SubMenu.Name
Else
DescripcionControl = Menu.Text + " / " + SubMenu.Text
End If
objPedidosRN.SP_HERRAMIENTAS_SIGMA_SEGURIDAD_INGRESAR_CONTROL_POR_APLICACION(My.Application.IDAPLICACION, NombreControl, DescripcionControl)
For H = 0 To SubMenu.DropDownItems.Count - 1
If SubMenu.DropDownItems.Item(H).GetType().FullName = "System.Windows.Forms.ToolStripMenuItem" Then '---->Menu
submenu_ = SubMenu.DropDownItems.Item(H) '--->opciones del menu
NombreControl = submenu_.Name
DescripcionControl = submenu_.Text
If DescripcionControl = "" Then
DescripcionControl = Menu.Name + " / " + SubMenu.Name + " / " + submenu_.Name '"OpcMenu,Sin Definir"
Else
DescripcionControl = Menu.Text + " / " + SubMenu.Text + " / " + submenu_.Text '"OpcMenu,Sin Definir"
End If
objPedidosRN.SP_HERRAMIENTAS_SIGMA_SEGURIDAD_INGRESAR_CONTROL_POR_APLICACION(My.Application.IDAPLICACION, NombreControl, DescripcionControl)
End If
Next
End If
Next
Next
Catch ex As Exception
MessageBox.Show("#ERROR RC002, No se pudo realizar el registro de los controles: " + ex.ToString)
End Try
End Sub
Public Shared Sub DesactivarControlesAplicacion(ByRef unForm As Form) 'se desactivan incialmente los controles para poder controlarlos
Dim Menu As System.Windows.Forms.ToolStripMenuItem
Dim SubMenu As System.Windows.Forms.ToolStripDropDownItem
Dim submenu_ As System.Windows.Forms.ToolStripItem
Dim I, H As Integer
Dim NombreControl As String
Try
For Each Menu In unForm.MainMenuStrip.Items
NombreControl = Menu.Name
Menu.Enabled = False
Menu.Visible = False
For I = 0 To Menu.DropDownItems.Count - 1
If Menu.DropDownItems.Item(I).GetType().FullName = "System.Windows.Forms.ToolStripMenuItem" Then '---->Menu
SubMenu = Menu.DropDownItems.Item(I) '--->opciones del menu
NombreControl = SubMenu.Name
SubMenu.Enabled = False
SubMenu.Visible = False
For H = 0 To SubMenu.DropDownItems.Count - 1
If SubMenu.DropDownItems.Item(H).GetType().FullName = "System.Windows.Forms.ToolStripMenuItem" Then '---->Menu
submenu_ = SubMenu.DropDownItems.Item(H) '--->opciones del menu
NombreControl = submenu_.Name
submenu_.Enabled = False
submenu_.Visible = False
End If
Next
End If
Next
Next
Catch ex As Exception
MessageBox.Show("#ERROR DC1002, No se pudieron desactivar los controles: " + ex.ToString)
End Try
End Sub
Public Shared Sub ActivarControlesPorPefil(ByRef unForm As Form, ByVal unIdAplicacion As Integer, ByVal unIdPerfil As Integer)
Dim Menu As System.Windows.Forms.ToolStripMenuItem
Dim SubMenu As System.Windows.Forms.ToolStripDropDownItem
Dim submenu_ As System.Windows.Forms.ToolStripItem
Dim I, H As Integer
Dim NombreControl As String
Try
' ''2) Obtengo el listado de los controles habilitados POR PERFIL desde el sistema de seguridad
Dim mDtListadoControles = New DataTable
objPedidosRN.SP_HERRAMIENTAS_SIGMA_SEGURIDAD_LISTADO_CONTROLES_POR_PERFIL(My.Application.IDAPLICACION, My.Application.IDPERFIL)
mDtListadoControles = objPedidosRN.Tabla
If Not IsNothing(mDtListadoControles) Then
For Each Menu In unForm.MainMenuStrip.Items
NombreControl = Menu.Name
'Menu.Enabled = False
ActivarControlPorSeguridad(Menu, mDtListadoControles)
For I = 0 To Menu.DropDownItems.Count - 1
If Menu.DropDownItems.Item(I).GetType().FullName = "System.Windows.Forms.ToolStripMenuItem" Then '---->Menu
SubMenu = Menu.DropDownItems.Item(I) '--->opciones del menu
NombreControl = SubMenu.Name
'SubMenu.Enabled = False
ActivarControlPorSeguridad(SubMenu, mDtListadoControles)
For H = 0 To SubMenu.DropDownItems.Count - 1
If SubMenu.DropDownItems.Item(H).GetType().FullName = "System.Windows.Forms.ToolStripMenuItem" Then '---->Menu
submenu_ = SubMenu.DropDownItems.Item(H) '--->opciones del menu
NombreControl = submenu_.Name
ActivarControlPorSeguridad(submenu_, mDtListadoControles)
End If
Next
End If
Next
Next
End If
Catch ex As Exception
MessageBox.Show("#ERROR RC002, No se pudo realizar el activación de los controles: " + ex.ToString)
End Try
End Sub
Public Shared Sub ActivarControlesPorUsuario(ByRef unForm As Form, ByVal unIdAplicacion As Integer, ByVal unIdPerfil As Integer)
Dim Menu As System.Windows.Forms.ToolStripMenuItem
Dim SubMenu As System.Windows.Forms.ToolStripDropDownItem
Dim submenu_ As System.Windows.Forms.ToolStripItem
Dim I, H As Integer
Dim NombreControl As String
Try
''2) Obtengo el listado de los controles habilitados POR USUARIO desde el sistema de seguridad
Dim mDtListadoControlesUSu = New DataTable
objPedidosRN.SP_HERRAMIENTAS_SIGMA_SEGURIDAD_LISTADO_CONTROLES_POR_USUARIO(My.Application.IDAPLICACION, My.Application.IDUSUARIO)
mDtListadoControlesUSu = objPedidosRN.Tabla
If Not IsNothing(mDtListadoControlesUSu) Then
For Each Menu In unForm.MainMenuStrip.Items
NombreControl = Menu.Name
'Menu.Enabled = False
ActivarControlPorSeguridad(Menu, mDtListadoControlesUSu)
For I = 0 To Menu.DropDownItems.Count - 1
If Menu.DropDownItems.Item(I).GetType().FullName = "System.Windows.Forms.ToolStripMenuItem" Then '---->Menu
SubMenu = Menu.DropDownItems.Item(I) '--->opciones del menu
NombreControl = SubMenu.Name
' SubMenu.Enabled = False
ActivarControlPorSeguridad(SubMenu, mDtListadoControlesUSu)
For H = 0 To SubMenu.DropDownItems.Count - 1
If SubMenu.DropDownItems.Item(H).GetType().FullName = "System.Windows.Forms.ToolStripMenuItem" Then '---->Menu
submenu_ = SubMenu.DropDownItems.Item(H) '--->opciones del menu
NombreControl = submenu_.Name
ActivarControlPorSeguridad(submenu_, mDtListadoControlesUSu)
End If
Next
End If
Next
Next
End If
Catch ex As Exception
MessageBox.Show("#ERROR AC0034, No se pudo realizar la activación de los controles por usuario: " + ex.ToString)
End Try
End Sub
Public Shared Sub ActivarControlPorSeguridad(ByVal NControl As ToolStripMenuItem, ByRef mdtListadocontroles1 As DataTable)
For i As Integer = 0 To mdtListadocontroles1.Rows.Count - 1
If NControl.Name = mdtListadocontroles1.Rows(i).Item("NOMBRECONTROL") Then
NControl.Visible = mdtListadocontroles1.Rows(i).Item("VISIBLE")
NControl.Enabled = mdtListadocontroles1.Rows(i).Item("ACTIVO")
Exit For
End If
Next
End Sub
Public Shared Sub ActivarControlPorSeguridad(ByVal NControl As ToolStripDropDownItem, ByRef mdtListadocontroles1 As DataTable)
For i As Integer = 0 To mdtListadocontroles1.Rows.Count - 1
If NControl.Name = mdtListadocontroles1.Rows(i).Item("NOMBRECONTROL") Then
NControl.Visible = mdtListadocontroles1.Rows(i).Item("VISIBLE")
NControl.Enabled = mdtListadocontroles1.Rows(i).Item("ACTIVO")
Exit For
End If
Next
End Sub
Public Shared Sub ActivarControlPorSeguridad(ByVal NControl As ToolStripItem, ByRef mdtListadocontroles1 As DataTable)
For i As Integer = 0 To mdtListadocontroles1.Rows.Count - 1
If NControl.Name = mdtListadocontroles1.Rows(i).Item("NOMBRECONTROL") Then
NControl.Visible = mdtListadocontroles1.Rows(i).Item("VISIBLE")
NControl.Enabled = mdtListadocontroles1.Rows(i).Item("ACTIVO")
Exit For
End If
Next
End Sub
#End Region
End Class