[LotusScript] 重新整理一般人員的ACL許可權
1 (Initialize)
Sub Initialize
On Error Goto ErrHandler
Dim sView As NotesView
Dim sDoc As NotesDocument
Set s = New NotesSession
Set db = s.CurrentDatabase
Dim isExist As String
'Dim Level As Integer
Set EmpDB=s.getdatabase(db.Server,"SYSTEM\\UGOP.nsf")
Set EmpOldView= EmpDB.GetView("(ByOldEName)")
Set ApList = db.getView("Vw_ApList")
Set Ap = ApList.GetFirstDocument
While Not(Ap Is Nothing)
Set refreshDB = s.GetDatabase(Ap.ServerIp(0),Ap.ApPath(0))
Print "資料庫路徑:-----------" +Ap.ServerName(0)+":::::"+Ap.ApPath(0)
Call refreshDB.sign(DBSIGN_DOC_ALL)
Set acl = refreshDB.ACL
If refreshDB.QueryAccess(s.UserName) <> 6 Then
Msgbox "您不是系統管理員,無權執行此程式!!!!"
'Call SendToMail(Ap.ServerName(0)&"您不是系統管理員,無權執行此程式!!!!")
'Exit Sub
Ap.aflag = "N"
Call Ap.Save(True,True)
Goto ErrHandler
End If
Set entry = acl.GetFirstEntry
While Not(entry Is Nothing)
'只更新 Person
If entry.IsPerson And Not(entry.IsGroup) Then
Set EmpODoc = EmpOldView.getdocumentbykey(UserNames("[ABBREVIATE]",entry.Name),True)
If Not( EmpODoc Is Nothing) Then
'檢查帳號是否存在
If Ucase(entry.Name) <> Ucase(EmpODoc.NotesFullName(0)) Then
Print "Old Name:______________"+entry.Name
Print "New Name:______________"+EmpODoc.NotesFullName(0)
isExist = "N"
Set aclcheck = refreshDB.ACL
Set check = aclcheck.GetFirstEntry
'檢查欲新增的帳號是否已存在
While Not check Is Nothing
If Ucase(check.Name) = Ucase(EmpODoc.NotesFullName(0)) Then
isExist = "Y"
End If
Set check = aclcheck.GetNextEntry(check)
Wend
If isExist <>"Y" Then
'在ACL中新增新條目:
Set acl = refreshDB.ACL
'這個例子中,我們新增管理員 With Wang/CN/CMINL
Set nEntry = acl.CreateACLEntry(EmpODoc.NotesFullName(0), entry.Level )
stringArray = entry.Roles
nEntry.CanCreateDocuments = entry.CanCreateDocuments
nEntry.CanCreateLSOrJavaAgent = entry.CanCreateLSOrJavaAgent
nEntry.CanCreatePersonalAgent = entry.CanCreatePersonalAgent
nEntry.CanCreatePersonalFolder = entry.CanCreatePersonalFolder
nEntry.CanCreateSharedFolder = entry.CanCreateSharedFolder
nEntry.CanDeleteDocuments = entry.CanDeleteDocuments
nEntry.CanReplicateOrCopyDocuments = entry.CanReplicateOrCopyDocuments
nEntry.IsAdminReaderAuthor = entry.IsAdminReaderAuthor
nEntry.IsAdminServer = entry.IsAdminServer
nEntry.IsGroup = entry.IsGroup
nEntry.IsPerson = entry.IsPerson
nEntry.IsPublicReader = entry.IsPublicReader
nEntry.IsPublicWriter = entry.IsPublicWriter
If entry.Roles(0) <>"" Then
For i=0 To Ubound(stringArray)
Call nEntry.EnableRole(stringArray(i))
Next
End If
End If
End If
End If
End If
Set entry = acl.GetNextEntry(entry)
Wend
'儲存對ACL的更改
Call acl.Save
Ap.aflag = "Y"
Call Ap.Save(True,True)
Goto ErrHandler
ErrHandler:
Set Ap = ApList.GetNextDocument(Ap)
Wend
'Call SendMail("OK")
'Msgbox("OK")
Print "OK"
'Call SendToMail("OK")
End Sub
2 Function UserNames
Function UserNames (Action As String, Username As Variant) As String
Dim InputName As New NotesNAME(Username)
Action=Ucase(Action)
Select Case Action
Case "[CANONICAL]"
UserNames=InputName.Canonical
Case "[ABBREVIATE]"
UserNames=InputName.Abbreviated
Case "[CN]"
UserNames=InputName.Common
Case "[C]"
UserNames=InputName.Country
Case "[OU1]"
UserNames=InputName.OrgUnit1
Case "[OU2]"
UserNames=InputName.OrgUnit2
Case "[OU3]"
UserNames=InputName.OrgUnit3
Case "[O]"
UserNames=InputName.Organization
Case Else
UserNames=InputName.Canonical
End Select
End Function
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24998103/viewspace-700387/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 程式碼批量新增ACL管理員許可權
- 許可權模型:ACL模型
- Linux-許可權管理(ACL許可權)Linux
- Linux ACL 許可權Linux
- 使用Java API操作zookeeper的acl許可權JavaAPI
- [LotusScript] 更新所有讀者和作者許可權欄位
- Linux ACL 許可權之進階篇Linux
- Linux 筆記分享九:ACL 許可權Linux筆記
- PingCode Wiki 許可權設計之ACLGC
- nodejs的使用者許可權管理——acl.mdNodeJS
- .NET 程式許可權控制、獲得管理員許可權程式碼
- Linux下ACL許可權控制以及用sudo設定使用者對命令的執行許可權Linux
- 程式請求管理員許可權
- windows7管理員許可權Windows
- Oracle的物件許可權、角色許可權、系統許可權Oracle物件
- 取消 root 級管理員的 root 許可權
- [Linux]學習⑥④---ACL許可權檢視與設定Linux
- win10管理員許可權怎麼獲取 win10管理員許可權獲取的方法Win10
- 最近對就有系統人員許可權升級計劃――也談人員許可權的設計。
- Think Authz:支援 ACL、RBAC、ABAC 等模型的授權(角色和許可權控制)庫模型
- win10管理員許可權怎麼取消_win10如何關掉管理員許可權Win10
- w10如何獲得管理員許可權_win10怎麼取得管理員許可權Win10
- 如何獲取最高管理員許可權 win10教育版最高管理員許可權Win10
- win10怎麼獲得管理員許可權_win10獲取管理員許可權的步驟Win10
- 資料夾刪不掉需要管理員許可權怎麼辦 刪除需要管理員許可權的辦法
- Confluence6對比系統管理員許可權和Confluence管理員許可權
- Linux系統中檔案許可權ACL功能(上)。薦Linux
- AIX 的許可許可權(轉)AI
- jCasbin: 強大的訪問控制、許可權管理框架,支援 ACL, RBAC, ABAC框架
- PyCasbin: 支援 ACL、RBAC、ABAC 多種模型的 Python 許可權管理框架模型Python框架
- PHP -Casbin: 支援 ACL、RBAC、ABAC 多種模型的 PHP 許可權管理框架PHP模型框架
- 許可權之選單許可權
- win10 管理員許可權授權怎麼關掉 win10電腦管理員許可權怎麼解除Win10
- windows10管理員許可權怎麼設定_win10電腦設定管理員許可權的步驟WindowsWin10
- 為什麼win10沒有管理員許可權_win10沒有管理員許可權的解決方法Win10
- win10系統如何開啟管理員許可權 win10開啟管理員許可權的圖文教程Win10
- 網路層訪問許可權控制技術 ACL詳解(轉)訪問許可權
- 如何用 Vue 實現前端許可權控制(路由許可權 + 檢視許可權 + 請求許可權)Vue前端路由