Restricting Database Access after hours
This week's dev tip was submitted to the Lotus411
Tips by John P. Warner
This is a quick way to restrict access to a Notes database
for those customers who do not fully understand Notes
security and want the database "shut down" after hours. (My
customer physically wanted the server to be shut down on a
nightly basis)
I created a scheduled agent that runs at 8:00 pm nightly to
modify all entries in the ACL except Managers and set their
access to No Access. This restricts all users while
allowing you to still administer the server after hours. I
also wrote another scheduled agent to grant access that
runs at 8:00 am.
Code:
Dim session As New NotesSession
Dim db As NotesDatabase
Dim acl As NotesACL
Dim acl_entry As NotesACLEntry
On Error Goto ProcessError
Set nlog = New NotesLog("Restrict Access")
Call nlog.OpenAgentLog()
Call nlog.LogAction("Agent Started")
Set db = session.CurrentDatabase
If (db Is Nothing) Then
Call nlog.LogAction("db is nothing")
Exit Sub
End If
Set acl = db.ACL
Set acl_entry = acl.GetFirstEntry()
'ACL Level Access Key
'ACLLEVEL_NOACCESS = 0
'ACLLEVEL_DEPOSITOR = 1
'ACLLEVEL_READER = 2
'ACLLEVEL_AUTHOR = 3
'ACLLEVEL_EDITOR = 4
'ACLLEVEL_DESIGNER = 5
'ACLLEVEL_MANAGER = 6
While Not (acl_entry Is Nothing)
Select Case (acl_entry.Level)
Case ACLEVEL_DEPOSITOR:
Case ACLLEVEL_READER:
Case ACLLEVEL_AUTHOR :
Case ACLLEVEL_EDITOR :
Case ACLLEVEL_DESIGNER:
acl_entry.Level = ACL_NOACCESS
End Select
Set acl_entry = acl.GetNextEntry(acl_entry)
Wend
'save changes to the ACL
Call acl.Save
Call nlog.LogAction("agent completed successfully")
Call nlog.Close
Exit Sub
ProcessError:
Call nlog.LogError(Err,Error$ & " occured at line " & Erl)
Exit Sub
End Sub
previous page
|