As every chocolate lover knows, it is impossible to have too much of a good thing! Having once introduced the notion of having separate keyval areas on an object, more applications of the idea quickly suggest themselves.
For example, it is not only users who need to have private data. The administrators of the server may wish to place data on an object and have it visible only to them. For example, storing things like encrypted user passphrases on the user object makes sense, because it means that they automatically get recycled when the user object is recycled, saving the bother of running round finding and deleting that information from various system tables. But it may be best to let not even the user have access to the encrypted passphrase, since it may make it too simple for naughtyfolk taking advantage of an unattended terminal.
Why not a private space on each object for admins?
Why not, indeed! Muq provides access to such an area
$a. object.key separator. You will
need to be connected as Root to do this example:
Stack: makeIndex --> a Stack: makeIndex --> a$a.b ( Admins key :b on obj a. ) Stack: makeIndex --> a$a.b$a.c ( Admins key :c on obj a$a.b. ) Stack: 14 --> a$a.b$a.c$a.d ( Admins key :d on obj a$a.b$a.c. ) Stack: a$a.b$a.c$a.d Stack: 14 ( Well, well... )
The hand-coding for the final expression is:
Stack: a :b adminsGet :c adminsGet :d adminsGet
Go to the first, previous, next, last section, table of contents.