| I suspect that the customer is saying logical when he means symbol. An
easy way to get all of the current drawer symbols is:
<EXAMINE (SYMBOL="OA$CURDWR*")
Of course, there may be some that don't start with OA$CURDWR but I am
sure that someone will point out my stupidity if I am wrong.
I am not aware of any real drawer level indicator of access control.
There is an access control file in the drawer subdirectory cleverly
called ACCESS.DAT. One way to determine whether the user has access to
the drawer would be the following:
GET #ACCESS_FILE = PARTITION.DIRECTORY[OA$CURDWR_LOCATION] "ACCESS.DAT"
CHECK_ACCESS ,#FILE,"R",#ACCESS_FLAG
.IF OA$STATUS AND #ACCESS_FLAG THEN .GOTO READ_ALLOWED
The CHECK_ACCESS function in the example above is checking for Read
access. It could also check for Write, Execute, or Delete. The check
after that checks both OA$STATUS and the returned #ACCESS_FLAG in case
the file itself is not there or other error occurs.
The ACL$ dataset could be replace the above with roughly the same level
of effort, of course.
This check does not check to see if the drawer is one of advanced
drawers where each document is controlled individually.
The CABINET EDIT_DOCUMENT/CHECK_ONLY is another way to check a single
document to see if a user can edit a document, of course.
Have fun,
don
|