Dear,
Did anyone code captioned function in LotusScript? Would you like to show your codes here? Appreciated for your kind help here
Landy
Dear,
Did anyone code captioned function in LotusScript? Would you like to show your codes here? Appreciated for your kind help here
Landy
Subject: How to add/enable/disable/remove roles in ACL
Landy,Yes, I have a tool that builds ACL entries. It can alter existing ones etc.
I’m sorry about the lack of err coding standards, I was a bit bored when writing this, it took some time - but this was partly 'cause I was and am still quite new to LS…
Heres some sample code:
(Options)
Option public
(Declarations)
Dim acl As NotesACL
Sub Initialize
Dim workspace As New NotesUIWorkspace
'Dim askme As Integer
'Prompt the developer for the server and database name
'Then set db as what they put in
'First bit sets default entries to save time
Dim Server As String
Dim database As String
Dim DefaultServer As String
Dim DefaultDatabase As String
DefaultServer = "UK-DVWallace"
DefaultDatabase = ".ntf"
Dim entry As NotesACLEntry
Dim entry1 As NotesACLEntry
Dim entry2 As NotesACLEntry
Dim entry3 As NotesACLEntry
Dim entry4 As NotesACLEntry
Dim entry5 As NotesACLEntry
Dim entry6 As NotesACLEntry
Dim entry7 As NotesACLEntry
Dim entry8 As NotesACLEntry
server = workspace.Prompt (PROMPT_OKCANCELEDIT, _
"Please enter the server name", _
"For example UK-DVWallace", _
DefaultServer)
database = workspace.Prompt (PROMPT_OKCANCELEDIT, _
"Please enter the database name", _
"For example TEST.ntf", _
DefaultDatabase)
Dim db As New NotesDatabase _
(Server,Database)
'Set the default entry. If it's already there, set to standards
'If not, entry is added.
Set acl = db.ACL
Set entry = acl.GetEntry( "-Default-" )
If Not ( entry Is Nothing ) Then
entry.Level = ACLLEVEL_NOACCESS
entry.IsPublicReader = False
entry.IsPublicWriter = False
entry.CanReplicateOrCopyDocuments = False
'Below lines need fixing, to accomodate if roles is blank.
Forall r In acl.Roles
Dim doRolesExist As Variant
doRolesExist = acl.Roles
If doRolesExist(0)= "" Then
Else
Set entry2 = acl.GetEntry( "-Default-" )
Call entry2.DisableRole(r)
End If
End Forall
Else
Dim Unspecified As New NotesACLEntry _
( acl, "-Default-", ACLLEVEL_NOACCESS)
Forall r In acl.Roles
If doRolesExist(0)= "" Then
Else
Set entry2 = acl.GetEntry( "-Default-" )
Call entry2.DisableRole(r)
End If
End Forall
Call acl.Save
End If
'Set access for */Genric/CompanyName
'If its there set access to standards
'If not create it and set entry to standards
Set entry3 = acl.GetEntry( "*/Genric/CompanyName" )
If Not ( entry3 Is Nothing ) Then
entry3.Level = ACLLEVEL_READER
entry3.UserType = ACLTYPE_UNSPECIFIED
entry3.IsPublicWriter = True
entry3.CanReplicateOrCopyDocuments = True
entry3.CanCreatePersonalAgent = False
entry3.CanCreatePersonalFolder = False
entry3.CanCreatePersonalAgent = False
Call acl.Save
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry3 = acl.GetEntry( "*/Genric/CompanyName" )
Call entry3.EnableRole(r)
End If
End Forall
Else
'Otherwise, we need to create the entry and set the access
Dim something As New NotesACLEntry _
( acl, "*/Genric/CompanyName", ACLLEVEL_READER )
something.CanReplicateOrCopyDocuments = True
something.IsPublicWriter = True
Call acl.Save
Forall r In acl.Roles
If doRolesExist(0)= "" Then
Else
Set entry3 = acl.GetEntry( "*/Genric/CompanyName" )
Call entry3.EnableRole(r)
End If
End Forall
Call acl.Save
End If
'==============START ANONYMOUS=============
'Set access for Anonymous
Set entry4 = acl.GetEntry( "Anonymous" )
If Not ( entry4 Is Nothing ) Then
entry4.Level = ACLLEVEL_NOACCESS
entry4.UserType = ACLTYPE_UNSPECIFIED
entry4.IsPublicReader = False
entry4.IsPublicWriter = False
entry4.CanReplicateOrCopyDocuments = False
entry4.CanCreatePersonalAgent = False
entry4.CanCreatePersonalFolder = False
entry4.CanCreatePersonalAgent = False
Call acl.Save
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry4 = acl.GetEntry( "Anonymous" )
Call entry4.DisableRole(r)
End If
End Forall
Else
Dim somethingelse As New NotesACLEntry _
( acl, "Anonymous", ACLLEVEL_NOACCESS )
somethingelse.IsPublicReader = False
somethingelse.CanReplicateOrCopyDocuments = False
somethingelse.IsPublicWriter = False
somethingelse.CanCreatePersonalAgent = False
somethingelse.CanCreatePersonalFolder = False
somethingelse.CanCreatePersonalAgent = False
Call acl.Save
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry4 = acl.GetEntry( "Anonymous" )
Call entry4.DisableRole(r)
End If
End Forall
End If
'=======================END Anonymous==============
'START DeniedAcess===============================
'Set access for Denied Access entry
Set entry5 = acl.GetEntry( "DeniedAccess" )
If Not ( entry5 Is Nothing ) Then
entry5.Level = ACLLEVEL_NOACCESS
entry5.UserType = ACLTYPE_MIXED_GROUP
entry5.IsPublicReader = False
entry5.IsPublicWriter = False
entry5.CanReplicateOrCopyDocuments = False
entry5.CanCreatePersonalAgent = False
entry5.CanCreatePersonalFolder = False
entry5.CanCreatePersonalAgent = False
Call acl.Save
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry5= acl.GetEntry( "DeniedAccess" )
Call entry5.DisableRole(r)
Call acl.Save
End If
End Forall
Else
Dim bugsbunny As New NotesACLEntry _
( acl, "DeniedAccess", ACLLEVEL_NOACCESS )
'Call acl.Save
'Set bugsbunny = acl.GetEntry( "DeniedAccess" )
bugsbunny.UserType = ACLTYPE_MIXED_GROUP
bugsbunny.IsPublicReader = False
bugsbunny.CanReplicateOrCopyDocuments = False
bugsbunny.IsPublicWriter = False
bugsbunny.CanCreatePersonalAgent = False
bugsbunny.CanCreatePersonalFolder = False
bugsbunny.CanCreatePersonalAgent = False
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry5= acl.GetEntry( "DeniedAccess" )
Call entry5.DisableRole(r)
End If
End Forall
Call acl.Save
End If
'END DeniedAccess Section
'START EU-NotesDBAdministrators section
Set entry6 = acl.GetEntry( "EU-NotesDBAdministrators" )
If Not ( entry6 Is Nothing ) Then
entry6.Level = ACLLEVEL_MANAGER
entry6.UserType = ACLTYPE_PERSON_GROUP
entry6.CanCreateDocuments = True
entry6.CanDeleteDocuments = True
entry6.IsPublicReader = True
entry6.IsPublicWriter = True
entry6.CanReplicateOrCopyDocuments = True
entry6.CanCreatePersonalAgent = True
entry6.CanCreatePersonalFolder = True
entry6.CanCreatePersonalAgent = True
Call acl.Save
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry6= acl.GetEntry( "EU-NotesDBAdministrators" )
Call entry6.EnableRole(r)
End If
End Forall
Call acl.Save
Else
Dim daffyduck As New NotesACLEntry _
( acl, "EU-NotesDBAdministrators", ACLLEVEL_MANAGER )
'Call acl.Save
'Set bugsbunny = acl.GetEntry( "DeniedAccess" )
daffyduck.UserType = ACLTYPE_PERSON_GROUP
daffyduck.CanCreateDocuments = True
daffyduck.CanDeleteDocuments = True
daffyduck.IsPublicReader = True
daffyduck.CanReplicateOrCopyDocuments = True
daffyduck.IsPublicWriter = True
daffyduck.CanCreatePersonalAgent = True
daffyduck.CanCreatePersonalFolder = True
daffyduck.CanCreatePersonalAgent = True
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry6= acl.GetEntry( "EU-NotesDBAdministrators" )
Call entry6.EnableRole(r)
End If
End Forall
Call acl.Save
End If
'END EU-NotesDBAdministrators
'====START LocalDomainHubs
Set entry7 = acl.GetEntry( "LocalDomainHubs" )
If Not ( entry7 Is Nothing ) Then
entry7.Level = ACLLEVEL_MANAGER
entry7.UserType = ACLTYPE_MIXED_GROUP
entry7.CanCreateDocuments = True
entry7.CanDeleteDocuments = True
entry7.IsPublicReader = True
entry7.IsPublicWriter = True
entry7.CanReplicateOrCopyDocuments = True
entry7.CanCreatePersonalAgent = True
entry7.CanCreatePersonalFolder = True
entry7.CanCreatePersonalAgent = True
Call acl.Save
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry7= acl.GetEntry( "LocalDomainHubs" )
Call entry7.EnableRole(r)
End If
End Forall
Call acl.Save
Else
Dim ObiWan As New NotesACLEntry _
( acl, "LocalDomainHubs", ACLLEVEL_MANAGER )
ObiWan.UserType = ACLTYPE_MIXED_GROUP
ObiWan.CanCreateDocuments = True
ObiWan.CanDeleteDocuments = True
ObiWan.IsPublicReader = True
ObiWan.CanReplicateOrCopyDocuments = True
ObiWan.IsPublicWriter = True
ObiWan.CanCreatePersonalAgent = True
ObiWan.CanCreatePersonalFolder = True
ObiWan.CanCreatePersonalAgent = True
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry7= acl.GetEntry( "LocalDomainHubs" )
Call entry7.EnableRole(r)
End If
End Forall
Call acl.Save
End If
'END LOCAL DOMAIN HUBS
'START LOCALDOMAINSERVERS===================
Set entry8 = acl.GetEntry( "LocalDomainServers" )
If Not ( entry8 Is Nothing ) Then
entry8.Level = ACLLEVEL_EDITOR
entry8.UserType = ACLTYPE_MIXED_GROUP
entry8.CanCreateDocuments = True
entry8.CanDeleteDocuments = True
entry8.IsPublicReader = True
entry8.IsPublicWriter = True
entry8.CanReplicateOrCopyDocuments = True
entry8.CanCreatePersonalAgent = True
entry8.CanCreatePersonalFolder = True
entry8.CanCreateLSOrJavaAgent = True
entry8.CanCreateSharedFolder = True
entry8.CanCreatePersonalAgent = True
Call acl.Save
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry8= acl.GetEntry( "LocalDomainServers" )
Call entry8.EnableRole(r)
End If
End Forall
Call acl.Save
Else
Dim Homer As New NotesACLEntry _
( acl, "LocalDomainServers", ACLLEVEL_EDITOR )
Homer.UserType = ACLTYPE_MIXED_GROUP
Homer.CanCreateDocuments = True
Homer.CanDeleteDocuments = True
Homer.IsPublicReader = True
Homer.CanReplicateOrCopyDocuments = True
Homer.IsPublicWriter = True
Homer.CanCreatePersonalAgent = True
Homer.CanCreatePersonalFolder = True
Homer.CanCreateLSOrJavaAgent = True
Homer.CanCreateSharedFolder = True
Homer.CanCreatePersonalAgent = True
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry7= acl.GetEntry( "LocalDomainServers" )
Call entry7.EnableRole(r)
End If
End Forall
Call acl.Save
End If
'END LocalDomainServers
'START OTHER DOMAIN SERVERS
Set entry9 = acl.GetEntry( "OtherDomainServers" )
If Not ( entry9 Is Nothing ) Then
entry9.Level = ACLLEVEL_NOACCESS
entry9.UserType = ACLTYPE_MIXED_GROUP
entry9.IsPublicReader = False
entry9.IsPublicWriter = False
entry9.CanReplicateOrCopyDocuments = False
entry9.CanCreatePersonalAgent = False
entry9.CanCreatePersonalFolder = False
entry9.CanCreatePersonalAgent = False
Call acl.Save
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry9= acl.GetEntry( "OtherDomainServers" )
Call entry9.DisableRole(r)
Call acl.Save
End If
End Forall
Else
Dim Crunch As New NotesACLEntry _
( acl, "OtherDomainServers", ACLLEVEL_NOACCESS )
Crunch.UserType = ACLTYPE_MIXED_GROUP
Crunch.IsPublicReader = False
Crunch.CanReplicateOrCopyDocuments = False
Crunch.IsPublicWriter = False
Crunch.CanCreatePersonalAgent = False
Crunch.CanCreatePersonalFolder = False
Crunch.CanCreatePersonalAgent = False
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry9= acl.GetEntry( "OtherDomainServers" )
Call entry9.DisableRole(r)
End If
End Forall
Call acl.Save
End If
'END OTHER DOMAIN SERVERS
'START Server/Genric/CompanyName
Set entry10 = acl.GetEntry( "Server/Generic/Company/Country" )
If Not ( entry10 Is Nothing ) Then
entry10.Level = ACLLEVEL_MANAGER
entry10.UserType = ACLTYPE_SERVER
entry10.CanCreateDocuments = True
entry10.CanDeleteDocuments = True
entry10.IsPublicReader = True
entry10.IsPublicWriter = True
entry10.CanReplicateOrCopyDocuments = True
entry10.CanCreatePersonalAgent = True
entry10.CanCreatePersonalFolder = True
entry10.CanCreatePersonalAgent = True
Call acl.Save
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry10= acl.GetEntry( "Server/Company1/Generic/Country" )
Call entry10.EnableRole(r)
End If
End Forall
Call acl.Save
Else
Dim Stabilo As New NotesACLEntry _
( acl, "Server/Country-Region/Company/Country", ACLLEVEL_MANAGER )
Stabilo.UserType = ACLTYPE_SERVER
Stabilo.CanCreateDocuments = True
Stabilo.CanDeleteDocuments = True
Stabilo.IsPublicReader = True
Stabilo.CanReplicateOrCopyDocuments = True
Stabilo.IsPublicWriter = True
Stabilo.CanCreatePersonalAgent = True
Stabilo.CanCreatePersonalFolder = True
Stabilo.CanCreatePersonalAgent = True
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry10= acl.GetEntry( "Server/CountryRegion/Company/Country" )
Call entry10.EnableRole(r)
End If
End Forall
Call acl.Save
End If
'END UK-HAWKING
'START UK-IT-BSG-NotesDevelopers
Set entry11 = acl.GetEntry( "UK-IT-BSG-NotesDevelopers" )
If Not ( entry11 Is Nothing ) Then
entry11.Level = ACLLEVEL_MANAGER
entry11.UserType = ACLTYPE_PERSON_GROUP
entry11.CanCreateDocuments = True
entry11.CanDeleteDocuments = True
entry11.IsPublicReader = True
entry11.IsPublicWriter = True
entry11.CanReplicateOrCopyDocuments = True
entry11.CanCreatePersonalAgent = True
entry11.CanCreatePersonalFolder = True
entry11.CanCreatePersonalAgent = True
Call acl.Save
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry11= acl.GetEntry( "UK-IT-BSG-NotesDevelopers" )
Call entry11.EnableRole(r)
End If
End Forall
Call acl.Save
Else
Dim Boss As New NotesACLEntry _
( acl, "UK-IT-BSG-NotesDevelopers", ACLLEVEL_MANAGER)
Boss.UserType = ACLTYPE_PERSON_GROUP
Boss.CanCreateDocuments = True
Boss.CanDeleteDocuments = True
Boss.IsPublicReader = True
Boss.CanReplicateOrCopyDocuments = True
Boss.IsPublicWriter = True
Boss.CanCreatePersonalAgent = True
Boss.CanCreatePersonalFolder = True
Boss.CanCreatePersonalAgent = True
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry11= acl.GetEntry( "UK-IT-BSG-NotesDevelopers" )
Call entry11.EnableRole(r)
End If
End Forall
Call acl.Save
End If
'Start of building seed entries
Dim entrya As NotesACLEntry
Dim entry1a As NotesACLEntry
Dim entry2a As NotesACLEntry
Dim entry3a As NotesACLEntry
Dim entry4a As NotesACLEntry
Dim entry5a As NotesACLEntry
Dim entry6a As NotesACLEntry
Dim entry7a As NotesACLEntry
Dim entry8a As NotesACLEntry
'Set the default entry. If it's already there, set to standards
'If not, entry is added.
Set acl = db.ACL
Set entrya = acl.GetEntry( "[-Default-]" )
If Not ( entrya Is Nothing ) Then
entrya.Level = ACLLEVEL_NOACCESS
entrya.IsPublicReader = False
entrya.IsPublicWriter = False
entrya.CanReplicateOrCopyDocuments = False
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry2a = acl.GetEntry( "[-Default-]" )
Call entry2a.DisableRole(r)
End If
End Forall
Else
Dim Unspecified1 As New NotesACLEntry _
( acl, "[-Default-]",ACLLEVEL_NOACCESS)
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry2a = acl.GetEntry( "[-Default-]" )
Call entry2a.DisableRole(r)
End If
End Forall
Call acl.Save
End If
'Set access for */Genric/Company
'If its there set access to standards
'If not create it and set entry to standards
Set entry3a = acl.GetEntry( "[*/Company/Generic]" )
If Not ( entry3a Is Nothing ) Then
entry3a.Level = ACLLEVEL_AUTHOR
entry3a.UserType = ACLTYPE_UNSPECIFIED
entry3a.IsPublicWriter = True
entry3a.CanReplicateOrCopyDocuments = True
entry3a.CanCreatePersonalAgent = False
entry3a.CanCreatePersonalFolder = False
entry3a.CanCreatePersonalAgent = False
entry3a.CanCreateDocuments = True
entry3a.CanDeleteDocuments = False
Call acl.Save
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry3a = acl.GetEntry( "[*/CompanyName/Country]" )
Call entry3a.DisableRole(r)
End If
End Forall
Else
'Otherwise, we need to create the entry and set the access
Dim something1 As New NotesACLEntry _
( acl, "[*/Company/Country]", ACLLEVEL_AUTHOR)
something1.CanReplicateOrCopyDocuments = True
something1.IsPublicWriter = True
something1.CanCreateDocuments = True
something1.CanDeleteDocuments = False
Call acl.Save
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry3a = acl.GetEntry( "[*/Company/Country]" )
Call entry3a.DisableRole(r)
End If
End Forall
Call acl.Save
End If
'==============START ANONYMOUS=============
'Set access for Anonymous
Set entry4a = acl.GetEntry( "[Anonymous]" )
If Not ( entry4a Is Nothing ) Then
entry4a.Level = ACLLEVEL_NOACCESS
entry4a.UserType = ACLTYPE_UNSPECIFIED
entry4a.IsPublicReader = False
entry4a.IsPublicWriter = False
entry4a.CanReplicateOrCopyDocuments = False
entry4a.CanCreatePersonalAgent = False
entry4a.CanCreatePersonalFolder = False
entry4a.CanCreatePersonalAgent = False
Call acl.Save
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry4a = acl.GetEntry( "[Anonymous]" )
Call entry4a.DisableRole(r)
End If
End Forall
Else
Dim somethingelse1 As New NotesACLEntry _
( acl, "[Anonymous]", ACLLEVEL_NOACCESS )
somethingelse1.IsPublicReader = False
somethingelse1.CanReplicateOrCopyDocuments = False
somethingelse1.IsPublicWriter = False
somethingelse1.CanCreatePersonalAgent = False
somethingelse1.CanCreatePersonalFolder = False
somethingelse1.CanCreatePersonalAgent = False
Call acl.Save
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry4a = acl.GetEntry( "[Anonymous]" )
Call entry4a.DisableRole(r)
End If
End Forall
End If
'=======================END Anonymous==============
'START DeniedAcess===============================
'Set access for Denied Access entry
Set entry5a = acl.GetEntry( "[DeniedAccess]" )
If Not ( entry5a Is Nothing ) Then
entry5a.Level = ACLLEVEL_NOACCESS
entry5a.UserType = ACLTYPE_MIXED_GROUP
entry5a.IsPublicReader = False
entry5a.IsPublicWriter = False
entry5a.CanReplicateOrCopyDocuments = False
entry5a.CanCreatePersonalAgent = False
entry5a.CanCreatePersonalFolder = False
entry5a.CanCreatePersonalAgent = False
Call acl.Save
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry5a= acl.GetEntry( "[DeniedAccess]" )
Call entry5a.DisableRole(r)
Call acl.Save
End If
End Forall
Else
Dim bugsbunny1 As New NotesACLEntry _
( acl, "[DeniedAccess]", ACLLEVEL_NOACCESS )
'Call acl.Save
'Set bugsbunny1 = acl.GetEntry( "[DeniedAccess]" )
bugsbunny1.UserType = ACLTYPE_MIXED_GROUP
bugsbunny1.IsPublicReader = False
bugsbunny1.CanReplicateOrCopyDocuments = False
bugsbunny1.IsPublicWriter = False
bugsbunny1.CanCreatePersonalAgent = False
bugsbunny1.CanCreatePersonalFolder = False
bugsbunny1.CanCreatePersonalAgent = False
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry5a= acl.GetEntry( "[DeniedAccess]" )
Call entry5a.DisableRole(r)
End If
End Forall
Call acl.Save
End If
'END DeniedAccess Section
'START EU-NotesDBAdministrators section
Set entry6a = acl.GetEntry( "[EU-NotesDBAdministrators]" )
If Not ( entry6a Is Nothing ) Then
entry6a.Level = ACLLEVEL_MANAGER
entry6a.UserType = ACLTYPE_PERSON_GROUP
entry6a.CanCreateDocuments = True
entry6a.CanDeleteDocuments = True
entry6a.IsPublicReader = True
entry6a.IsPublicWriter = True
entry6a.CanReplicateOrCopyDocuments = True
entry6a.CanCreatePersonalAgent = True
entry6a.CanCreatePersonalFolder = True
entry6a.CanCreatePersonalAgent = True
Call acl.Save
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry6a= acl.GetEntry( "[EU-NotesDBAdministrators]" )
Call entry6a.EnableRole(r)
End If
End Forall
Call acl.Save
Else
Dim daffyduck1 As New NotesACLEntry _
( acl, "[EU-NotesDBAdministrators]", ACLLEVEL_MANAGER )
'Call acl.Save
'Set bugsbunny1 = acl.GetEntry( "[DeniedAccess]" )
daffyduck1.UserType = ACLTYPE_PERSON_GROUP
daffyduck1.CanCreateDocuments = True
daffyduck1.CanDeleteDocuments = True
daffyduck1.IsPublicReader = True
daffyduck1.CanReplicateOrCopyDocuments = True
daffyduck1.IsPublicWriter = True
daffyduck1.CanCreatePersonalAgent = True
daffyduck1.CanCreatePersonalFolder = True
daffyduck1.CanCreatePersonalAgent = True
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry6a= acl.GetEntry( "[EU-NotesDBAdministrators]" )
Call entry6a.EnableRole(r)
End If
End Forall
Call acl.Save
End If
'END EU-NotesDBAdministrators
'====START LocalDomainHubs
Set entry7a = acl.GetEntry( "[LocalDomainHubs]" )
If Not ( entry7a Is Nothing ) Then
entry7a.Level = ACLLEVEL_MANAGER
entry7a.UserType = ACLTYPE_MIXED_GROUP
entry7a.CanCreateDocuments = True
entry7a.CanDeleteDocuments = True
entry7a.IsPublicReader = True
entry7a.IsPublicWriter = True
entry7a.CanReplicateOrCopyDocuments = True
entry7a.CanCreatePersonalAgent = True
entry7a.CanCreatePersonalFolder = True
entry7a.CanCreatePersonalAgent = True
Call acl.Save
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry7a= acl.GetEntry( "[LocalDomainHubs]" )
Call entry7a.EnableRole(r)
End If
End Forall
Call acl.Save
Else
Dim ObiWan1 As New NotesACLEntry _
( acl, "[LocalDomainHubs]", ACLLEVEL_MANAGER )
ObiWan1.UserType = ACLTYPE_MIXED_GROUP
ObiWan1.CanCreateDocuments = True
ObiWan1.CanDeleteDocuments = True
ObiWan1.IsPublicReader = True
ObiWan1.CanReplicateOrCopyDocuments = True
ObiWan1.IsPublicWriter = True
ObiWan1.CanCreatePersonalAgent = True
ObiWan1.CanCreatePersonalFolder = True
ObiWan1.CanCreatePersonalAgent = True
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry7a= acl.GetEntry( "[LocalDomainHubs]" )
Call entry7a.EnableRole(r)
End If
End Forall
Call acl.Save
End If
'END LOCAL DOMAIN HUBS
'START LOCALDOMAINSERVERS===================
Set entry8a = acl.GetEntry( "[LocalDomainServers]" )
If Not ( entry8a Is Nothing ) Then
entry8a.Level = ACLLEVEL_EDITOR
entry8a.UserType = ACLTYPE_MIXED_GROUP
entry8a.CanCreateDocuments = True
entry8a.CanDeleteDocuments = True
entry8a.IsPublicReader = True
entry8a.IsPublicWriter = True
entry8a.CanReplicateOrCopyDocuments = True
entry8a.CanCreatePersonalAgent = True
entry8a.CanCreatePersonalFolder = True
entry8a.CanCreateLSOrJavaAgent = True
entry8a.CanCreateSharedFolder = True
entry8a.CanCreatePersonalAgent = True
Call acl.Save
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry8a= acl.GetEntry( "[LocalDomainServers]" )
Call entry8a.EnableRole(r)
End If
End Forall
Call acl.Save
Else
Dim Homer1 As New NotesACLEntry _
( acl, "[LocalDomainServers]", ACLLEVEL_EDITOR )
Homer1.UserType = ACLTYPE_MIXED_GROUP
Homer1.CanCreateDocuments = True
Homer1.CanDeleteDocuments = True
Homer1.IsPublicReader = True
Homer1.CanReplicateOrCopyDocuments = True
Homer1.IsPublicWriter = True
Homer1.CanCreatePersonalAgent = True
Homer1.CanCreatePersonalFolder = True
Homer1.CanCreateLSOrJavaAgent = True
Homer1.CanCreateSharedFolder = True
Homer1.CanCreatePersonalAgent = True
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry7b= acl.GetEntry( "[LocalDomainServers]" )
Call entry7b.EnableRole(r)
End If
End Forall
Call acl.Save
End If
'END LocalDomainServers
'START OTHER DOMAIN SERVERS
Set entry9a = acl.GetEntry( "[OtherDomainServers]" )
If Not ( entry9a Is Nothing ) Then
entry9a.Level = ACLLEVEL_NOACCESS
entry9a.UserType = ACLTYPE_MIXED_GROUP
entry9a.IsPublicReader = False
entry9a.IsPublicWriter = False
entry9a.CanReplicateOrCopyDocuments = False
entry9a.CanCreatePersonalAgent = False
entry9a.CanCreatePersonalFolder = False
entry9a.CanCreatePersonalAgent = False
Call acl.Save
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry9a= acl.GetEntry( "[OtherDomainServers]" )
Call entry9a.DisableRole(r)
Call acl.Save
End If
End Forall
Else
Dim Crunch1 As New NotesACLEntry _
( acl, "[OtherDomainServers]", ACLLEVEL_NOACCESS )
Crunch1.UserType = ACLTYPE_MIXED_GROUP
Crunch1.IsPublicReader = False
Crunch1.CanReplicateOrCopyDocuments = False
Crunch1.IsPublicWriter = False
Crunch1.CanCreatePersonalAgent = False
Crunch1.CanCreatePersonalFolder = False
Crunch1.CanCreatePersonalAgent = False
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry9a= acl.GetEntry( "[OtherDomainServers]" )
Call entry9a.DisableRole(r)
End If
End Forall
Call acl.Save
End If
'END OTHER DOMAIN SERVERS
'START UK-IT-BSG-NotesDevelopers
Set entry11a = acl.GetEntry( "[UK-IT-BSG-NotesDevelopers]" )
If Not ( entry11a Is Nothing ) Then
entry11a.Level = ACLLEVEL_DESIGNER
entry11a.UserType = ACLTYPE_PERSON_GROUP
entry11a.CanCreateDocuments = True
entry11a.CanDeleteDocuments = False
entry11a.IsPublicReader = True
entry11a.IsPublicWriter = True
entry11a.CanReplicateOrCopyDocuments = True
entry11a.CanCreatePersonalAgent = True
entry11a.CanCreatePersonalFolder = True
entry11a.CanCreatePersonalAgent = True
Call acl.Save
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry11a= acl.GetEntry( "[UK-IT-BSG-NotesDevelopers]" )
Call entry11a.EnableRole(r)
End If
End Forall
Call acl.Save
Else
Dim Boss1 As New NotesACLEntry _
( acl, "[UK-IT-BSG-NotesDevelopers]", ACLLEVEL_DESIGNER)
Boss1.UserType = ACLTYPE_PERSON_GROUP
Boss1.CanCreateDocuments = True
Boss1.CanDeleteDocuments = False
Boss1.IsPublicReader = True
Boss1.CanReplicateOrCopyDocuments = True
Boss1.IsPublicWriter = True
Boss1.CanCreatePersonalAgent = True
Boss1.CanCreatePersonalFolder = True
Boss1.CanCreatePersonalAgent = True
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry11a= acl.GetEntry( "[UK-IT-BSG-NotesDevelopers]" )
Call entry11a.EnableRole(r)
End If
End Forall
Call acl.Save
End If
'End UK-IT-BSG-NotesDevelopers
'Start Company Admin Advanced
Set entry12a = acl.GetEntry( "[Company-Admin-Advanced]" )
If Not ( entry12a Is Nothing ) Then
entry12a.Level = ACLLEVEL_READER
entry12a.UserType = ACLTYPE_MIXED_GROUP
entry12a.IsPublicReader = True
entry12a.IsPublicWriter = True
entry12a.CanReplicateOrCopyDocuments = True
Call acl.Save
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry12a= acl.GetEntry( "[Company-Admin-Advanced]" )
Call entry12a.EnableRole(r)
End If
End Forall
Call acl.Save
Else
Dim June1 As New NotesACLEntry _
( acl, "[Company-Admin-Advanced]", ACLLEVEL_READER)
June1.UserType = ACLTYPE_MIXED_GROUP
June1.IsPublicReader = True
June1.CanReplicateOrCopyDocuments = True
June1.IsPublicWriter = True
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry12a= acl.GetEntry( "[Company-Admin-Advanced]" )
Call entry12a.EnableRole(r)
End If
End Forall
Call acl.Save
End If
'Prompt the user for a group who will own the database.
'Default entry calculates UK-(dbname)-Owner
Dim Owner1 As String
Dim DefaultOwner1 As String
Dim dbName As String
dbName = db.Title
DefaultOwner1 = "UK-" + dbName + "-DbOwner"
Dim macroStr2 As Variant
macroStr2 = Evaluate(|@ReplaceSubstring("|+ DefaultOwner1 + |"; " "; "")|)
DefaultOwner2 = Cstr(macroStr2(0))
Owner1 = workspace.Prompt (PROMPT_OKCANCELEDIT, _
"Please enter the name of the group who will own the database", _
"&[&For example UK-DbName-DbOwner&]&", _
"[" & DefaultOwner2 &"]")
'Next we will set the access as Person Editor With Delete
Set entry13a = acl.GetEntry( Owner1 )
If Not ( entry13a Is Nothing ) Then
entry13a.Level = ACLLEVEL_EDITOR
entry13a.UserType = ACLTYPE_PERSON_GROUP
entry13a.IsPublicReader = True
entry13a.IsPublicWriter = True
entry13a.CanReplicateOrCopyDocuments = True
entry13a.IsPublicWriter = True
entry13a.CanCreateDocuments = True
entry13a.CanDeleteDocuments = True
entry13a.IsPublicReader = True
entry13a.CanReplicateOrCopyDocuments = True
entry13a.IsPublicWriter = True
entry13a.CanCreatePersonalAgent = True
entry13a.CanCreatePersonalFolder = True
entry13a.CanCreatePersonalAgent = True
entry13a.CanCreateLSOrJavaAgent = True
entry13a.CanCreateSharedFolder = True
Call acl.Save
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry13a= acl.GetEntry( Owner1 )
Call entry13a.EnableRole(r)
End If
End Forall
Call acl.Save
Else
Dim Donut1 As New NotesACLEntry _
( acl, Owner1, ACLLEVEL_EDITOR)
Donut1.UserType = ACLTYPE_PERSON_GROUP
Donut1.IsPublicReader = True
Donut1.CanReplicateOrCopyDocuments = True
Donut1.IsPublicWriter = True
Donut1.CanCreateDocuments = True
Donut1.CanDeleteDocuments = True
Donut1.IsPublicReader = True
Donut1.CanReplicateOrCopyDocuments = True
Donut1.IsPublicWriter = True
Donut1.CanCreatePersonalAgent = True
Donut1.CanCreatePersonalFolder = True
Donut1.CanCreateLSOrJavaAgent = True
Donut1.CanCreateSharedFolder = True
Donut1.CanCreatePersonalAgent = True
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry13a= acl.GetEntry( Owner1 )
Call entry13a.EnableRole(r)
End If
End Forall
Call acl.Save
End If
'New code to add a Reader's group, with no roles as Default
'Prompt the user for a group who will need reader access
'Default entry calculates UK-(dbname)-Reader
Dim Owner3 As String
Dim DefaultOwner3 As String
Dim dbName3 As String
dbName3 = db.Title
DefaultOwner3 = "UK-" + dbName3 + "-DbReaders"
Dim macroStr3 As Variant
macroStr3 = Evaluate(|@ReplaceSubstring("|+ DefaultOwner3 + |"; " "; "")|)
DefaultOwner3b = Cstr(macroStr3(0))
Owner3 = workspace.Prompt (PROMPT_OKCANCELEDIT, _
"Please enter the name of the group who will need reader access", _
"&[&For example UK-DbName-Readers&]&", _
"[" & DefaultOwner3b &"]")
'Next we will set the access as Person Group Reader No Delete Or Roles
Set entry13b = acl.GetEntry( Owner3 )
If Not ( entry13b Is Nothing ) Then
entry13b.Level = ACLLEVEL_READER
entry13b.UserType = ACLTYPE_PERSON_GROUP
entry13b.IsPublicReader = True
entry13b.IsPublicWriter = True
entry13b.CanReplicateOrCopyDocuments = True
Call acl.Save
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry13b= acl.GetEntry( Owner3 )
Call entry13b.EnableRole(r)
End If
End Forall
Call acl.Save
Else
Dim Donut2 As New NotesACLEntry _
( acl, Owner3, ACLLEVEL_READER)
Donut2.UserType = ACLTYPE_PERSON_GROUP
Donut2.IsPublicReader = True
Donut2.CanReplicateOrCopyDocuments = True
Donut2.IsPublicWriter = True
Forall r In acl.Roles
If doRolesExist(0)= "" Then 'Do Nothing
Else
Set entry13b= acl.GetEntry( Owner3 )
Call entry13b.EnableRole(r)
End If
End Forall
Call acl.Save
End If
Dim askme As Integer
askme = workspace.Prompt(PROMPT_OK, _
"ACL has been built", "Please note some adjustment may be neccessary according to specific requirements of each application")
End Sub
Subject: How to add/enable/disable/remove roles in ACL
Take a look at the designer help database. There are some examples how to modify the acl of a database. Also adding, removing and renaming roles and how to apply to user and groups.