imzh
08-09-06, 04:10 PM
偶今天记录总结的一段学习笔记,觉得以后应该用得着。
贴上来大家一起学习:-)
@UserAccess 和 NotesDatabase的CurrentAccessLevel属性
-----------------------------------------------------
@UserAccess
给定一个服务器和文件名,指明当前用户对这个数据库的存取级别。
R5语法
@UserAccess( server : file )
R6语法
@UserAccess( server : file ; [ accessPrivilege ] )
参数
server
文本。服务器的名字。用空串 ("") 表示本地计算机。
file
文本。数据库的路径和文件名。请使用适当的操作系统格式来指定数据库的路径和文件名。
返回值
level : create documents : delete documents : create personal agents : create personal folders/views : create shared folders/views : create LotusScript/Java agent : read public documents : write public documents
文本列表。
level 是从 1 到 6 的数字,表示用户对数据库的存取级别。
level 用户存取级别
1 存放者
2 读者
3 作者
4 编辑者
5 设计者
6 管理者
create documents 是一个数字,如果用户能在数据库里创建文档,返回 1 (True),否则返回 0 (False)。
delete documents 是一个数字,如果用户能在数据库里删除文档,返回 1 (True),否则返回 0 (False)。
create personal agents 是一个数字,如果用户能在数据库里删除文档,返回 1 (True),否则返回 0 (False)。
create personal folders/views 是一个数字,如果用户能在数据库里删除文档,返回 1 (True),否则返回 0 (False)。
create shared folders/views 是一个数字,如果用户能在数据库里删除文档,返回 1 (True),否则返回 0 (False)。
create LotusScript/Java agent 是一个数字,如果用户能在数据库里删除文档,返回 1 (True),否则返回 0 (False)。
read public documents 是一个数字,如果用户能在数据库里删除文档,返回 1 (True),否则返回 0 (False)。
write public documents 是一个数字,如果用户能在数据库里删除文档,返回 1 (True),否则返回 0 (False)。
一个本地数据库中,@UserAccess 总是返回 6:1:1。如果当前用户对数据库的存取级别是“不能存取者”,Notes/Domino 将显示一条消息:“您未被授权执行此操作”。
用法
此函数不能用于列公式、选择公式或在服务器上运行的代理(邮件代理和定时执行代理)中。因此这个函数不能使用“Evaluate”语句。
样例:@UserAccess
1. 如果用户对服务器 Gaborone 上 DISCUSS 目录里的 NUN.NSF 数据库有“作者”存取级别,允许创建文档、删除文档、创建个人代理、创建个人视图和文件夹,但是没有创建共享视图和文件夹的权限,则下面公式返回 "3";"1";"1","1","1"0"。
@UserAccess( "Gaborone" : "discuss\\nun.nsf" )
2. 如果用户对当前数据库具有“管理者”存取级别,允许创建文档、删除文档、创建个人代理、创建个人和共享视图和文件夹、创建 LotusScript 和/或 Java 代理、读取和写公用文档,则下面公式返回 "6";"1";"1","1","1","1","1","1","1"。
@UserAccess( @DbName )
@UserAccess 的R6语法增加了个[accessPrivilege]可选参数:
The following return 1 (True) if the user has the specified privilege and 0 (False) if the user does not. These privileges are assigned in the Access Control List for the database.
[CREATEDOCUMENTS]
[DELETEDOCUMENTS]
[CREATEPERSONALAGENTS]
[CREATEPERSONALFOLDERSANDVIEWS]
[CREATELOTUSSCRIPTJAVAAGENTS]
[CREATESHAREDFOLDERSANDVIEWS]
[READPUBLICDOCUMENTS]
[WRITEPUBLICDOCUMENTS]
[REPLICATEORCOPYDOCUMENTS]
看其样例即可明白其新增可选参数用途:
This formula, when added to a form action button, creates a new document using the MyOpinion form if the current user has the privilege to create documents in the current (nun.nsf) database.
@If(@UserAccess( "" : "discuss\\nun.nsf" ; [CREATEDOCUMENTS]) = "1";@Command([Compose];"MyOpinion");@Prompt([OK];"Access denied";"Sorry, you do not have permission to create documents in this database."))
NotesDatabase的CurrentAccessLevel属性:
数据类型:整型常量
语法: level% = notesDatabase.CurrentAccessLevel
Legal values
ACLLEVEL_NOACCESS (0)
ACLLEVEL_DEPOSITOR (1)
ACLLEVEL_READER (2)
ACLLEVEL_AUTHOR (3)
ACLLEVEL_EDITOR (4)
ACLLEVEL_DESIGNER (5)
ACLLEVEL_MANAGER (6)
必须在数据库打开时使用这个属性
样例:
Dim session As New NotesSession
Dim db As NotesDatabase
Dim level As Integer
Set db = session.CurrentDatabase
level = db.CurrentAccessLevel
If Not level<ACLLEVEL_EDITOR Then
Call doc.ReplaceItemValue("editting","yes")
Else
Call doc.ReplaceItemValue("editting","no")
End If
贴上来大家一起学习:-)
@UserAccess 和 NotesDatabase的CurrentAccessLevel属性
-----------------------------------------------------
@UserAccess
给定一个服务器和文件名,指明当前用户对这个数据库的存取级别。
R5语法
@UserAccess( server : file )
R6语法
@UserAccess( server : file ; [ accessPrivilege ] )
参数
server
文本。服务器的名字。用空串 ("") 表示本地计算机。
file
文本。数据库的路径和文件名。请使用适当的操作系统格式来指定数据库的路径和文件名。
返回值
level : create documents : delete documents : create personal agents : create personal folders/views : create shared folders/views : create LotusScript/Java agent : read public documents : write public documents
文本列表。
level 是从 1 到 6 的数字,表示用户对数据库的存取级别。
level 用户存取级别
1 存放者
2 读者
3 作者
4 编辑者
5 设计者
6 管理者
create documents 是一个数字,如果用户能在数据库里创建文档,返回 1 (True),否则返回 0 (False)。
delete documents 是一个数字,如果用户能在数据库里删除文档,返回 1 (True),否则返回 0 (False)。
create personal agents 是一个数字,如果用户能在数据库里删除文档,返回 1 (True),否则返回 0 (False)。
create personal folders/views 是一个数字,如果用户能在数据库里删除文档,返回 1 (True),否则返回 0 (False)。
create shared folders/views 是一个数字,如果用户能在数据库里删除文档,返回 1 (True),否则返回 0 (False)。
create LotusScript/Java agent 是一个数字,如果用户能在数据库里删除文档,返回 1 (True),否则返回 0 (False)。
read public documents 是一个数字,如果用户能在数据库里删除文档,返回 1 (True),否则返回 0 (False)。
write public documents 是一个数字,如果用户能在数据库里删除文档,返回 1 (True),否则返回 0 (False)。
一个本地数据库中,@UserAccess 总是返回 6:1:1。如果当前用户对数据库的存取级别是“不能存取者”,Notes/Domino 将显示一条消息:“您未被授权执行此操作”。
用法
此函数不能用于列公式、选择公式或在服务器上运行的代理(邮件代理和定时执行代理)中。因此这个函数不能使用“Evaluate”语句。
样例:@UserAccess
1. 如果用户对服务器 Gaborone 上 DISCUSS 目录里的 NUN.NSF 数据库有“作者”存取级别,允许创建文档、删除文档、创建个人代理、创建个人视图和文件夹,但是没有创建共享视图和文件夹的权限,则下面公式返回 "3";"1";"1","1","1"0"。
@UserAccess( "Gaborone" : "discuss\\nun.nsf" )
2. 如果用户对当前数据库具有“管理者”存取级别,允许创建文档、删除文档、创建个人代理、创建个人和共享视图和文件夹、创建 LotusScript 和/或 Java 代理、读取和写公用文档,则下面公式返回 "6";"1";"1","1","1","1","1","1","1"。
@UserAccess( @DbName )
@UserAccess 的R6语法增加了个[accessPrivilege]可选参数:
The following return 1 (True) if the user has the specified privilege and 0 (False) if the user does not. These privileges are assigned in the Access Control List for the database.
[CREATEDOCUMENTS]
[DELETEDOCUMENTS]
[CREATEPERSONALAGENTS]
[CREATEPERSONALFOLDERSANDVIEWS]
[CREATELOTUSSCRIPTJAVAAGENTS]
[CREATESHAREDFOLDERSANDVIEWS]
[READPUBLICDOCUMENTS]
[WRITEPUBLICDOCUMENTS]
[REPLICATEORCOPYDOCUMENTS]
看其样例即可明白其新增可选参数用途:
This formula, when added to a form action button, creates a new document using the MyOpinion form if the current user has the privilege to create documents in the current (nun.nsf) database.
@If(@UserAccess( "" : "discuss\\nun.nsf" ; [CREATEDOCUMENTS]) = "1";@Command([Compose];"MyOpinion");@Prompt([OK];"Access denied";"Sorry, you do not have permission to create documents in this database."))
NotesDatabase的CurrentAccessLevel属性:
数据类型:整型常量
语法: level% = notesDatabase.CurrentAccessLevel
Legal values
ACLLEVEL_NOACCESS (0)
ACLLEVEL_DEPOSITOR (1)
ACLLEVEL_READER (2)
ACLLEVEL_AUTHOR (3)
ACLLEVEL_EDITOR (4)
ACLLEVEL_DESIGNER (5)
ACLLEVEL_MANAGER (6)
必须在数据库打开时使用这个属性
样例:
Dim session As New NotesSession
Dim db As NotesDatabase
Dim level As Integer
Set db = session.CurrentDatabase
level = db.CurrentAccessLevel
If Not level<ACLLEVEL_EDITOR Then
Call doc.ReplaceItemValue("editting","yes")
Else
Call doc.ReplaceItemValue("editting","no")
End If