Public Class ControlesPermisos
#Region "Declaraciones"
Private Shared mDtListadoControles As New DataTable
Private Shared WithEvents RibbonControl As DevExpress.XtraBars.Ribbon.RibbonControl
Private Shared Solapas As DevExpress.XtraBars.Ribbon.RibbonPage
Private Shared Grupo As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Private Shared Category As DevExpress.XtraBars.Ribbon.RibbonPageCategory
Private Shared Boton As DevExpress.XtraBars.BarItemLink
#End Region
#Region "Funciones"
Public Shared Sub RegistrarControles(ByRef unform As Form)
Dim nombreControl As String
Dim descripcionControl As String = "testing-Seguridad"
Dim descripcionControlRibbon As String = "testing-Ribbon"
'RibbonControl = New DevExpress.XtraBars.Ribbon.RibbonControl
'RibbonControl.Name = unControl.Name
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 DevExpress.XtraBars.Ribbon.RibbonControl Then
nombreControl = Ctrl.Name
'DesactivarElementosDelRibbon1(Ctrl, nombreControl)
SubRegistrarControles(Ctrl, unform)
Else
nombreControl = Ctrl.Name
ConexionSQL.EjecutarSP("SP_HERRAMIENTAS_SIGMA_SEGURIDAD_INGRESAR_CONTROL_POR_APLICACION", My.Application.IDAPLICACION, nombreControl, descripcionControl)
'Ctrl.Visible = False
'Ctrl.Enabled = False
End If
End If
Next
End Sub
'-------------------------------------------------------------------
'-------------------------------------------------------------------
Private Shared Sub SubRegistrarControles(ByRef unControl As DevExpress.XtraBars.Ribbon.RibbonControl, ByRef unform As Form)
Dim A_siguiente As Boolean = True
'************************************************************
'************************************************************
RibbonControl = New DevExpress.XtraBars.Ribbon.RibbonControl
RibbonControl.Name = unControl.Name
Solapas = New DevExpress.XtraBars.Ribbon.RibbonPage
Grupo = New DevExpress.XtraBars.Ribbon.RibbonPageGroup
Category = New DevExpress.XtraBars.Ribbon.RibbonPageCategory
For i As Integer = 0 To unform.Controls.Count - 1
Dim descripcionControlRibbon As String = "Sin asignar. Aplicación: Seguridad"
For Each Category In unControl.PageCategories 'Categorias
Dim CTcontrol As String = Category.Name
Dim CTcontrol_TAG As String = Convert.ToString(Category.Tag)
If CTcontrol_TAG = "" Then
CTcontrol_TAG = descripcionControlRibbon
GrabarControl(CTcontrol, CTcontrol_TAG)
Else
GrabarControl(CTcontrol, CTcontrol_TAG)
End If
For Each pagegroup As DevExpress.XtraBars.Ribbon.RibbonPage In Category.Pages 'paginas
Dim CTgrupopage As String = pagegroup.Name
Dim CTPagegroup_TAG As String = Convert.ToString(pagegroup.Tag)
If CTPagegroup_TAG = "" Then
CTPagegroup_TAG = descripcionControlRibbon
GrabarControl(CTgrupopage, CTPagegroup_TAG)
Else
GrabarControl(CTgrupopage, CTPagegroup_TAG)
End If
For Each group As DevExpress.XtraBars.Ribbon.RibbonPageGroup In pagegroup.Groups 'grupos de botones
Dim CTgrupoBBI As String = group.Name
Dim CTgrupoBBI_TAG As String = Convert.ToString(group.Tag)
If CTgrupoBBI_TAG = "" Then
CTgrupoBBI_TAG = descripcionControlRibbon
GrabarControl(CTgrupoBBI, CTgrupoBBI_TAG)
Else
GrabarControl(CTgrupoBBI, CTPagegroup_TAG)
End If
For io As Integer = 0 To pagegroup.Groups.Count - 1
If A_siguiente = True Then
For Each button As DevExpress.XtraBars.BarButtonItem In group.Ribbon.Items.OfType(Of DevExpress.XtraBars.BarButtonItem)() 'botones
Dim CtBBI As String = button.Name
Dim CtBBI_TAG As String = Convert.ToString(button.Tag)
If button.Name <> "" Then
If CtBBI_TAG = "" Then
CtBBI_TAG = descripcionControlRibbon
GrabarControl(CtBBI, CtBBI_TAG)
Else
GrabarControl(CtBBI, CtBBI_TAG)
End If
'ConexionSQL.EjecutarSP("SP_HERRAMIENTAS_SIGMA_SEGURIDAD_INGRESAR_CONTROL_POR_APLICACION", My.Application.IDAPLICACION, CtBBI, descripcionControlRibbon)
End If
Next
A_siguiente = False
End If
Next
Next
Next
Next
Next
End Sub
Private Shared Sub GrabarControl(ByVal Tcontrol As String, ByVal descCtrl As String)
Dim evaluar As Boolean = True
Dim T_control As String = Tcontrol
Dim D_DescTctrl As String = descCtrl
ConexionSQL.EjecutarSP("SP_HERRAMIENTAS_SIGMA_SEGURIDAD_INGRESAR_CONTROL_POR_APLICACION", My.Application.IDAPLICACION, T_control, D_DescTctrl)
End Sub
Public Shared Sub DesactivarControlesAplicacion(ByRef unForm As Form)
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 DevExpress.XtraBars.Ribbon.RibbonControl Then
DesactivarElementosDelRibbon(Ctrl)
Else
Ctrl.Visible = False
Ctrl.Enabled = False
End If
End If
Next
End Sub
Private Shared Sub DesactivarElementosDelRibbon(ByRef unControl As DevExpress.XtraBars.Ribbon.RibbonControl)
RibbonControl = New DevExpress.XtraBars.Ribbon.RibbonControl
RibbonControl.Name = unControl.Name
Solapas = New DevExpress.XtraBars.Ribbon.RibbonPage
Grupo = New DevExpress.XtraBars.Ribbon.RibbonPageGroup
Category = New DevExpress.XtraBars.Ribbon.RibbonPageCategory
'Boton = New DevExpress.XtraBars.BarItemLink
For Each Solapas In unControl.Pages 'Recorro las solapas
Solapas.Visible = False
For Each Grupo In Solapas.Groups 'Los grupos
Grupo.Visible = False
Grupo.Enabled = False
For Each Boton In Grupo.ItemLinks 'Los botones
Boton.Item.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
Boton.Item.Enabled = False
Next
Next
Next
End Sub
Public Shared Sub ActivarControlesPorPefil(ByRef unForm As Form, ByVal unIdAplicacion As Integer, ByVal unIdPerfil As Integer)
'2) Obtengo el listado de los controles habilitados POR PERFIL desde el sistema de seguridad
mDtListadoControles = New DataTable
mDtListadoControles = ConexionSQL.EjecutarSP("SP_HERRAMIENTAS_SIGMA_SEGURIDAD_LISTADO_CONTROLES_POR_PERFIL", unIdAplicacion, unIdPerfil)
If Not IsNothing(mDtListadoControles) Then
Dim Ctrl As Control
For i As Integer = 0 To unForm.Controls.Count - 1
Ctrl = unForm.Controls.Item(i)
If Ctrl.Name <> "" Then
Dim nombreControl As String = Ctrl.Name
If TypeOf (Ctrl) Is DevExpress.XtraBars.Ribbon.RibbonControl Then
RecorrerRibbon(Ctrl)
ElseIf TypeOf (Ctrl) Is DevExpress.XtraBars.Ribbon.RibbonStatusBar Then
ActivarControlPorSeguridad(Ctrl)
Else
ActivarControlPorSeguridad(Ctrl) 'Controles que no son de devexpress
End If
End If
Next
End If
End Sub
Public Shared Sub ActivarControlesPorUsuario(ByRef unForm As Form, ByVal unIdAplicacion As Integer, ByVal unIdUsuario As Integer)
'2) Obtengo el listado de los controles habilitados POR PERFIL desde el sistema de seguridad
mDtListadoControles = New DataTable
mDtListadoControles = ConexionSQL.EjecutarSP("SP_HERRAMIENTAS_SIGMA_SEGURIDAD_LISTADO_CONTROLES_POR_USUARIO", unIdAplicacion, unIdUsuario)
If Not IsNothing(mDtListadoControles) Then
Dim Ctrl As Control
For i As Integer = 0 To unForm.Controls.Count - 1
Ctrl = unForm.Controls.Item(i)
If Ctrl.Name <> "" Then
Dim nombreControl As String = Ctrl.Name
If TypeOf (Ctrl) Is DevExpress.XtraBars.Ribbon.RibbonControl Then
RecorrerRibbon(Ctrl)
ElseIf TypeOf (Ctrl) Is DevExpress.XtraBars.Ribbon.RibbonStatusBar Then
ActivarControlPorSeguridad(Ctrl)
Else
ActivarControlPorSeguridad(Ctrl) 'Controles que no son de devexpress
End If
End If
Next
End If
End Sub
Private Shared Sub RecorrerRibbon(ByRef unControl As DevExpress.XtraBars.Ribbon.RibbonControl)
RibbonControl = New DevExpress.XtraBars.Ribbon.RibbonControl
RibbonControl.Name = unControl.Name
Solapas = New DevExpress.XtraBars.Ribbon.RibbonPage
Grupo = New DevExpress.XtraBars.Ribbon.RibbonPageGroup
Category = New DevExpress.XtraBars.Ribbon.RibbonPageCategory
For Each Category In unControl.PageCategories 'Categorias
ActivarControlPorSeguridad(Category)
Next
For Each Solapas In unControl.Pages 'Recorro las solapas
ActivarControlPorSeguridad(Solapas)
For Each Grupo In Solapas.Groups 'Los grupos
ActivarControlPorSeguridad(Grupo)
For Each Boton In Grupo.ItemLinks 'Los botones
ActivarControlPorSeguridad(Boton)
Next
Next
Next
End Sub
Private Shared Sub ActivarControlPorSeguridad(ByRef unControl As Control)
For i As Integer = 0 To mDtListadoControles.Rows.Count - 1
If unControl.Name = mDtListadoControles.Rows(i).Item("NOMBRECONTROL") Then
unControl.Visible = mDtListadoControles.Rows(i).Item("VISIBLE")
unControl.Enabled = mDtListadoControles.Rows(i).Item("ACTIVO")
Exit Sub
End If
Next
End Sub
Private Shared Sub ActivarControlPorSeguridad(ByRef unControl As DevExpress.XtraBars.Ribbon.RibbonPage)
For i As Integer = 0 To mDtListadoControles.Rows.Count - 1
If unControl.Name = mDtListadoControles.Rows(i).Item("NOMBRECONTROL") Then
unControl.Visible = mDtListadoControles.Rows(i).Item("VISIBLE")
Exit Sub
End If
Next
End Sub
Private Shared Sub ActivarControlPorSeguridad(ByRef unControl As DevExpress.XtraBars.Ribbon.RibbonPageGroup)
For i As Integer = 0 To mDtListadoControles.Rows.Count - 1
If unControl.Name = mDtListadoControles.Rows(i).Item("NOMBRECONTROL") Then
unControl.Visible = mDtListadoControles.Rows(i).Item("VISIBLE")
unControl.Enabled = mDtListadoControles.Rows(i).Item("ACTIVO")
Exit Sub
End If
Next
End Sub
Private Shared Sub ActivarControlPorSeguridad(ByRef unControl As DevExpress.XtraBars.Ribbon.RibbonPageCategory)
For i As Integer = 0 To mDtListadoControles.Rows.Count - 1
If unControl.Name = mDtListadoControles.Rows(i).Item("NOMBRECONTROL") Then
unControl.Visible = mDtListadoControles.Rows(i).Item("VISIBLE")
Exit Sub
End If
Next
End Sub
Private Shared Sub ActivarControlPorSeguridad(ByRef unControl As DevExpress.XtraBars.BarItemLink)
For i As Integer = 0 To mDtListadoControles.Rows.Count - 1
If unControl.Item.Name = mDtListadoControles.Rows(i).Item("NOMBRECONTROL") Then
If mDtListadoControles.Rows(i).Item("VISIBLE") Then
unControl.Item.Visibility = DevExpress.XtraBars.BarItemVisibility.Always
Else
unControl.Item.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
End If
unControl.Item.Enabled = mDtListadoControles.Rows(i).Item("ACTIVO")
Exit Sub
End If
Next
End Sub
Private Shared Sub ActivarControlPorSeguridad(ByRef unControl As DevExpress.XtraBars.Ribbon.RibbonStatusBar)
For i As Integer = 0 To mDtListadoControles.Rows.Count - 1
If unControl.Name = mDtListadoControles.Rows(i).Item("NOMBRECONTROL") Then
unControl.Visible = mDtListadoControles.Rows(i).Item("VISIBLE")
unControl.Enabled = mDtListadoControles.Rows(i).Item("ACTIVO")
Exit Sub
End If
Next
End Sub
#End Region
End Class
No hay comentarios:
Publicar un comentario