Command Definition/General
Applicable release versions: AP, R83
Category General (155)
Description description of retrieval/update locks.

Attributes 5 and 6 of file-defining items can contain retrieval and update lock codes respectively. These codes are used to restrict access to certain data files and master dictionaries. Lock codes are sets of characters used as codes. Multiple lock codes are separated by value marks. The first lock code (retrieval or update) in an md or file dictionary must be matched in attribute 6 (key) of the user's item in the users file to allow access to the file or md. If the lock code does not match, access is denied.

Locks can be placed at any file pointer level, system, master dictionary, or dictionary. The system pointer controls access to a master dicitonary; the master dicitonary pointer controls a file dictionary, and a file dictionary pointer controls the data file.
1)  In this example, a company has four departments; finance, admin, mis, and 
ops.  Each department is maintained in a separate master dictionary.  Users 
remain attached to a specific master dicitonary, but must be prevented from 
"q-pointing" or using path names to access files on any other master 

The following are the locks as they appear in the system-level d-pointers and 
the user definitions:

In the "mds" file:

id: finance.mstr  admin.mstr  mis.mstr  ops.mstr
001 d             d           d         d
002 67889         786554      45000     23007
003 11            27          13        11
005 finance       admin       mis       ops
006 finance       admin       mis       ops
009 l             l           l         l
010 10            10          10        10

The following are a few of the users and their locks "keys".

user:     toms    glendaj     sama   carlak   gandalf
006(keys) admin   finance     mis    ops      admin]mis]ops

Every user is restricted the those files found on the local master dictionary 
except for "gandalf". He can access files on 3 of the four master 

2)  Update and retrieval locks can be set for specific files. For this example, 
two files on the "admin" account must be restricted. The files are 
called, "payroll" and "reviews".  A  new category of 
"supervisor" is added.  "supervisor" files are only 
accessable by users with this key regardless of the host master dicitoinary.  
On the "admin" account, these pointers define the dictionaries of the 

id: payroll       reviews
001 d             d      
002 56678         344567 
003 23            13     
005 supervisor    supervisor
006 supervisor    supervisor
009 l             l      
010 10            10     

"gandalf" is now a supervisor:

user:      gandalf
006(keys)  admin]mis]ops]supervisor

Now, "gandalf" can retrieve "payroll" and 
"reviews" but "toms" is still restricted.
Related basic.retrieval.locks