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"
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
SubRegistrarControles(Ctrl, unform)
Else
nombreControl = Ctrl.Name
ConexionSQL.EjecutarSP("SP_HERRAMIENTAS_SIGMA_SEGURIDAD_INGRESAR_CONTROL_POR_APLICACION", My.Application.IDAPLICACION, nombreControl, descripcionControl)
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
'file and save record
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)
'DesactivarControlesRibbo1(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 Category In unControl.PageCategories 'Categorias
Category.Visible = False
Next
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
For Each Solapas In Category.Pages '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
Private Shared Sub DesactivarControlesRibbo1(ByRef unControl As DevExpress.XtraBars.Ribbon.RibbonControl) ', ByRef unform As Form)
'desactivar todos los controles al inicio de la aplicacion para poder editarlos con los usuarios y perfiles.
Dim A_siguiente As Boolean = True 'evita que pase dos veces por los controles internos de cada categoria y grupos
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
Dim CTcontrol As String = Category.Name
Category.Visible = False
For Each pagegroup As DevExpress.XtraBars.Ribbon.RibbonPage In Category.Pages 'paginas
Dim CTgrupopage As String = pagegroup.Name
pagegroup.Visible = False
For Each group As DevExpress.XtraBars.Ribbon.RibbonPageGroup In pagegroup.Groups 'grupos de botones
Dim CTgrupoBBI As String = group.Name
group.Visible = False
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
If button.Name <> "" Then
button.Enabled = False
End If
Next
A_siguiente = False
End If
Next
Next
Next
Next
End Sub
'------aqui se activaran los controles por la via de ribbon y se recorren los ob objetos-------por usuario-----
Private Shared Sub RecorrerDesactivarControlesRibbo(ByRef unControl As DevExpress.XtraBars.Ribbon.RibbonControl) ', ByRef unform As Form)
Dim A_siguiente As Boolean = True 'evita que pase dos veces por los controles internos de cada categoria y grupos
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
' Category.Visible = False
ActivarControlPorSeguridad(Category)
For Each pagegroup As DevExpress.XtraBars.Ribbon.RibbonPage In Category.Pages 'paginas
Dim CTgrupopage As String = pagegroup.Name
' pagegroup.Visible = False
ActivarControlPorSeguridad(pagegroup)
For Each group As DevExpress.XtraBars.Ribbon.RibbonPageGroup In pagegroup.Groups 'grupos de botones
Dim CTgrupoBBI As String = group.Name
' group.Visible = False
ActivarControlPorSeguridad(group)
For io As Integer = 0 To pagegroup.Groups.Count - 1
If A_siguiente = True Then
'For Each Button In Grupo.ItemLinks 'Los botones
' Boton.Item.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
'Boton.Item.Enabled = False
'Next
'For Each button As DevExpress.XtraBars.BarButtonItem In pagegroup.Ribbon.Items.OfType(Of DevExpress.XtraBars.BarButtonItem)() 'botones
' 'For Each Botton In group.Ribbon.Items.OfType(Of DevExpress.XtraBars.BarButtonItem)() 'Los botones
'If Button.Name <> "" Then
'button.Enabled = False
'ActivarControlPorSeguridad(unControl)
For i As Integer = 0 To mDtListadoControles.Rows.Count - 1
For Each Button In Grupo.ItemLinks
If Button.Name <> "" Then
'button.Enabled = False
ActivarControlPorSeguridad(unControl)
' If Button.Name = mDtListadoControles.Rows(i).Item("NOMBRECONTROL") Then
' Button.Visibility = DevExpress.XtraBars.BarItemVisibility.Always 'mDtListadoControles.Rows(i).Item("VISIBLE")
' Button.Enabled = mDtListadoControles.Rows(i).Item("ACTIVO")
' 'button.Enabled = mDtListadoControles.Rows(i).Item("ACTIVO")
' Exit For
End If
Next
Next
End If
Next
A_siguiente = False
Next
Next
Next
'
'*************************************************************************************************
'desactivar todos los controles al inicio de la aplicacion para poder editarlos con los usuarios y perfiles.
'Dim A_siguiente As Boolean = True 'evita que pase dos veces por los controles internos de cada categoria y grupos
'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
' ' Category.Visible = False
' ActivarControlPorSeguridad(Category)
' For Each pagegroup As DevExpress.XtraBars.Ribbon.RibbonPage In Category.Pages 'paginas
' Dim CTgrupopage As String = pagegroup.Name
' ' pagegroup.Visible = False
' ActivarControlPorSeguridad(pagegroup)
' For Each group As DevExpress.XtraBars.Ribbon.RibbonPageGroup In pagegroup.Groups 'grupos de botones
' Dim CTgrupoBBI As String = group.Name
' ' group.Visible = False
' ActivarControlPorSeguridad(group)
' For io As Integer = 0 To pagegroup.Groups.Count - 1
' If A_siguiente = True Then
' For Each button As DevExpress.XtraBars.BarButtonItem In pagegroup.Ribbon.Items.OfType(Of DevExpress.XtraBars.BarButtonItem)() 'botones
' 'For Each Botton In group.Ribbon.Items.OfType(Of DevExpress.XtraBars.BarButtonItem)() 'Los botones
' If button.Name <> "" Then
' 'button.Enabled = False
' 'ActivarControlPorSeguridad(RibbonBarItems)
' For i As Integer = 0 To mDtListadoControles.Rows.Count - 1
' If button.Name = mDtListadoControles.Rows(i).Item("NOMBRECONTROL") Then
' button.Visibility = DevExpress.XtraBars.BarItemVisibility.Always 'mDtListadoControles.Rows(i).Item("VISIBLE")
' button.Enabled = mDtListadoControles.Rows(i).Item("ACTIVO")
' 'button.Enabled = mDtListadoControles.Rows(i).Item("ACTIVO")
' Exit For
' End If
' Next
' End If
' Next
' A_siguiente = False
' End If
' Next
' 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
unIdPerfil = 7 'eliminar al terminar
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)
'RecorrerDesactivarControlesRibbo(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)
'RecorrerDesactivarControlesRibbo(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 Category.Pages '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
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
'-----este lo vamos a desactivar por el momento-----
'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)
' 'For Each Solapas In unControl.Pages 'Recorro las solapas
' 'Return
' 'For Each pagegroup In unControl.Pages
' For Each pagegroup As DevExpress.XtraBars.Ribbon.RibbonPage In Category.Ribbon.Pages ' In Category.Pages 'paginas
' Dim CTgrupopage As String = pagegroup.Name
' pagegroup.Visible = True
' Next
'Next
'For Each group As DevExpress.XtraBars.Ribbon.RibbonPageGroup In pagegroup.Groups
'Private Shared Sub ActivarControlPorSeguridad(ByRef unControl As DevExpress.XtraBars.Ribbon.RibbonPage)
'ByRef unControl As DevExpress.XtraBars.Ribbon.RibbonPageCategory
'DevExpress.XtraBars.Ribbon.RibbonPage In Category.Pages
' For f As Integer = 0 To Category.Pages.Count - 1
'For Each pagegroup In Category.Pages 'Recorro las solapas
'ActivarControlPorSeguridad(Solapas)
'ActivarControlPorSeguridad(pagegroup)
''Next''
'Next
'For Each Grupo In Solapas.Groups 'Los grupos <<<<<<<<<<<---------esta fuera en esta depuracion 19-2-20
'For Each group As DevExpress.XtraBars.Ribbon.RibbonPageGroup In unControl.PageCategories 'pagegroup.Groups
'For Each group In pagegroup.group 'Los grupos
' 'ActivarControlPorSeguridad(Grupo)
'ActivarControlPorSeguridad(group)
' For Each Botton In Group.Ribbon.Items.OfType(Of DevExpress.XtraBars.BarButtonItem)() 'Los botones
' 'ActivarControlPorSeguridad(Boton)
' ActivarControlPorSeguridad(Botton)
' 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