Exportar el Contenido de la Acl de una base lotus notes a Excel.

acl

Hola a todos, hace mucho no escribía algo sobre lotus y como me siguen pidiendo que lo haga les comparto brevemente un código que puede serles útil.

Una de las virtudes de Notes es la seguridad, esta se puede delimitar en la ACL o Lista de Control de accesos, mediante diferentes niveles  predefinidos por la plataforma e incluso roles que nosotros podamos crear para nuestras aplicaciones.

Uno de los problemas que suele ocurrir en el tiempo es la poca mantención que se realiza sobre las aplicaciones, lo que deriva en enormes listas en la ACL y vulnerabilidades importantes, por lo que para cuando nos piden realizar una revisión de el estado actual de la lista se puede transformar en una pesadilla.

Mediante el script que comparto pueden crear un agente que entregará el listado detallado de la ACL y lo que cada usuario puede hacer sobre su aplicación.

El Agente.

Sub Initialize
On Error Goto ER

  Dim s As New NotesSession
  Dim db As NotesDatabase
  Dim acl As NotesACL
  Dim entry As NotesACLEntry
  Dim Excel As Variant
  Dim xlWorkbook As Variant
  Dim xHoja As Variant
  Dim nam As NotesName

  Set db = s.CurrentDatabase
  Set acl = db.ACL
  Set entry = acl.GetFirstEntry

  Set Excel = CreateObject( “Excel.Application” )
  Excel.Workbooks.Add ‘//Creamos un libro de Excel nuevo
  Set xlWorkbook = Excel.ActiveWorkbook ‘//Seleccionamos el libro activo
  row = 1’//Inicializamos las columnas a 0

  Excel.Cells(row,1).Value = ” USUARIO”
  Excel.Cells(row,2).Value = “NIVEL DE ACCESO”
  Excel.Cells(row,3).Value = “ROLES”
  Excel.Cells(row,4).Value = “PUEDE BORRAR DOCUMENTOS”
  Excel.Cells(row,5).Value = “PUEDE COPIAR DOCUMENTOS”

  While Not entry Is Nothing
  If entry.IsPerson Then
    row=row+1
   Set nam = s.CreateName(entry.Name)
   Excel.Cells(row,1).Value = nam.Common
   Excel.Cells(row,2).Value = getAcceso(entry.Level)
   strRoles=””
   Forall r In entry.Roles
   If strRoles=”” Then
      strRoles = Ucase(r)
   Else
     strRoles = StrRoles & “,” & Ucase(r)
  End If
  End Forall
  Excel.Cells(row,3).Value = strRoles
  Excel.Cells(row,4).Value =entry.CanDeleteDocuments
  Excel.Cells(row,5).Value =entry.CanReplicateOrCopyDocuments
End If
Set entry = acl.GetNextEntry(entry)
Wend

Excel.Visible = True ‘// Mostramos la ventana de Excel
Exit Sub
ER:
  Msgbox Error & ” en ExportaACL en linea ” & Erl
  Set Excel = Nothing
  Exit Sub
End Sub

La Funcion GetAcceso

Function getAcceso(nivel)
On Error Goto ER

  If nivel=0 Then
     r=”NO ACCESS”
  Elseif nivel=1 Then
     r=”DEPOSITOR”
  Elseif nivel=2 Then
     r=”READER”
  Elseif nivel=3 Then
     r=”AUTHOR”
  Elseif nivel=4 Then
    r=”EDITOR”
  Elseif nivel=5 Then
    r=”DESIGNER”
  Elseif nivel=6 Then
    r=”MANAGER”
 End If

 getAcceso = r

Exit Function
ER:
  Msgbox Error & ” en getAcceso linea ” & Erl
  Exit Function
End Function

Espero que les sea de utilidad.

Anuncios

Acerca de calitrunks

Carlos Astudillo Jamett(@calitrunks), Adventista del 7° Día. Ingeniero en Informática, de la Universidad Tecnológica de Chile. Desarrollador de Software, Apasionado por la tecnología, el emprendimiento y con muchas ganas de compartir el conocimiento y experiencias. Creador de la web http://www.somosaventureros.cl un sitio para difundir el club de aventureros, un lugar donde los niños pueden convertirse en mejores personas y saber que siempre hay oportunidades en la vida sin importar las circunstancias que se enfrenten. Email: castudill@hotmail.com Twitter: https://es.twitter.com/calitrunks

Publicado el febrero 11, 2015 en Lotus Notes, Scripts, Tecnologia y etiquetado en . Guarda el enlace permanente. Deja un comentario.

¿Que te pareció este post?

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: