sé que con currentUser, puedo evaluar o validar el
Usuario actual pero alguien sabe como puedo evaluar el
grupo, por ejemplo si el usuario pertenece al grupo
Administradores, muestre todo; si pertenece al Grupo Solo
Lectura, Solo Mueetre una parte de los formularios, etec.
ATRACTOR
========
Algunas funciones mediante ADO,
Ten en cuenta que cambiar un usuario de grupo en la misma sesión no
cambiara sus privilegios hasta que cierres y vuelvas a iniciar sesión.
Si los quieres mediante DAO avisa
UN SALUDO
----------------------------------------------------------
Public Function EstaUsuarioEnGrupoFE(ByVal NombreUsuario As String, ByVal
NombreGrupo As String) As Boolean
'Comprueba si el usuario pasado a la función pertenece al grupo
'pasado en la funcion, todo ello en el FrontEnd
On Error GoTo Error_EstaUsuarioEnGrupoFE
Dim cat As New ADOX.Catalog
Dim Gr As ADOX.Group
Dim Cnn2 As ADODB.Connection
Set Cnn2 = CurrentProject.Connection
Set cat.ActiveConnection = Cnn2
For Each Gr In cat.Users(NombreUsuario).Groups
If Gr.Name = NombreGrupo Then
EstaUsuarioEnGrupoFE = True
GoTo Exit_EstaUsuarioEnGrupoFE
End If
Next
Exit_EstaUsuarioEnGrupoFE:
On Error Resume Next
Set Gr = Nothing
Set cat = Nothing
Cnn2.Close
Set Cnn2 = Nothing
Exit Function
Error_EstaUsuarioEnGrupoFE:
On Error Resume Next
Set Gr = Nothing
Set cat = Nothing
Cnn2.Close
Set Cnn2 = Nothing
MsgBox "Error en Función: EstaUsuarioEnGrupoFE", , "Nº Error : " & Err.Number
End Function
------------------------------------------------------------------------
Public Function EstaUsuarioEnGrupoBE(ByVal NombreUsuario As String, ByVal
NombreGrupo As String) As Boolean
'Comprueba si el usuario pasado a la función pertenece al grupo
'pasado en la funcion, todo ello en el BackEnd
On Error GoTo Error_EstaUsuarioEnGrupoBE
Dim cat As New ADOX.Catalog
Dim Gr As ADOX.Group
Dim Cnn2 As ADODB.Connection
' Aquí puedes ver que los datos de conexion los guardo en propiedades
' de la base de datos.
Dim strCadenaConexion As String
strCadenaConexion = "Provider=Microsoft.Jet.OLEDB.4.0; "
strCadenaConexion = strCadenaConexion & "Data Source = " & CStr(GetDatabaseProp("UltimaRutaBackEnd")) & _
CStr(GetDatabaseProp("NombreBackEnd")) & ";"
strCadenaConexion = strCadenaConexion & "Jet OLEDB:System database= " & CStr(GetDatabaseProp("UltimaRutaSystemDatabase")) & _
CStr(GetDatabaseProp("NombreSystemDatabase"))
Set Cnn2 = New ADODB.Connection
Call Cnn2.Open(strCadenaConexion, strAdmin, strPWD)
Set cat.ActiveConnection = Cnn2
For Each Gr In cat.Users(NombreUsuario).Groups
If Gr.Name = NombreGrupo Then
EstaUsuarioEnGrupoBE = True
GoTo Exit_EstaUsuarioEnGrupoBE
End If
Next
Exit_EstaUsuarioEnGrupoBE:
On Error Resume Next
Set Gr = Nothing
Set cat = Nothing
Cnn2.Close
Set Cnn2 = Nothing
Exit Function
Error_EstaUsuarioEnGrupoBE:
On Error Resume Next
Set Gr = Nothing
Set cat = Nothing
Cnn2.Close
Set Cnn2 = Nothing
MsgBox "Error en Función: basGenerales.EstaUsuarioEnGrupoBE", , "Nº Error : " & Err.Number
End Function
--------------------------------------------
Public Sub AsignaUsuarioAGrupo(usrName As String, grpName As String)
On Error GoTo ADDTRAP
Dim cat1 As ADOX.Catalog
'Instancia el catalogo
Set cat1 = New ADOX.Catalog
'Establece la propiedad activeconnection del catálogo para
'utilizarlo al añadir un nuevo a grupo a un usuario existente.
Dim str As String
str = "Provider=Microsoft.Jet.OLEDB.4.0; "
str = str & "Data Source = "
str = str & CurrentProject.FullName & ";"
str = str & "Jet OLEDB:System database= "
str = str & CStr(GetDatabaseProp("UltimaRutaSystemDatabase"))
str = str & CStr(GetDatabaseProp("NombreSystemDatabase")) & ";"
str = str & "User Id = UAdmin; PassWord =" & strPWD & ";"
cat1.ActiveConnection = str
cat1.Users(usrName).Groups.Append grpName
cat1.Users(usrName).Groups.Refresh
ADDEXIT:
Set cat1 = Nothing
Exit Sub
ADDTRAP:
MsgBox "Error al asignar el usuario a un grupo", , Err.Number
GoTo ADDEXIT
End Sub
----------------------------------------------------------------------
Public Sub RemueveUsuarioDeGrupo(usrName As String, grpName As String)
On Error GoTo ADDTRAP
Dim cat1 As ADOX.Catalog
'Instancia el catalogo
Set cat1 = New ADOX.Catalog
'Establece la propiedad activeconnection del catálogo para
'utilizarlo al añadir un nuevo a grupo a un usuario existente.
Dim str As String
str = "Provider=Microsoft.Jet.OLEDB.4.0; "
str = str & "Data Source = "
str = str & CurrentProject.FullName & ";"
str = str & "Jet OLEDB:System database= "
str = str & CStr(GetDatabaseProp("UltimaRutaSystemDatabase"))
str = str & CStr(GetDatabaseProp("NombreSystemDatabase")) & ";"
str = str & "User Id = UAdmin; PassWord = " & strPWD & ";"
cat1.ActiveConnection = str
cat1.Users(usrName).Groups.Delete grpName
cat1.Users(usrName).Groups.Refresh
ADDEXIT:
Set cat1 = Nothing
Exit Sub
ADDTRAP:
MsgBox "Error al desasignar el usuario a un grupo", , Err.Number
GoTo ADDEXIT
End Sub
               (
geocities.com/es/ensolva/Descargas)                   (
geocities.com/es/ensolva)                   (
geocities.com/es)