
UNGUARDED(1)                                         UNGUARDED(1)

NAME
       unguarded() - calls a function relying only on the
       object's security

SYNOPSIS
       mixed unguarded(function f)

DESCRIPTION
       This function allows an object to make a function call
       based solely its own access.  Normally, when an object
       makes a function call, the access of all objects invloved
       in the object chain are checked to see if there is proper
       access.  For example, if you have a guild object which
       needs to read a help file in your home directory, under
       normal circumstances this will fail.  Even though your
       guild object has proper permissions to read your files,
       the person executing the command does not.  So, the guild
       object passes the security check, the player fails.  Since
       the player fails, the entire read fails.  This system is
       useful for preventing people from using other objects to
       gain illegal access.  However, in the case outlined above,
       this can be a pain.  The unguarded() function call directs
       the mudlib only to check to see if your guild object has
       the proper permission.  The argument to unguarded() is the
       function to be called.

EXAMPLES
       In the above example, there would be code like this:

               int cmd_help(string str) {
                   if(str != "guild") return 0;
                   txt = unguarded((: read_file, HELP_FILE :));
                   message("help", txt, this_player());
                   return 1;
               }

       The function unguarded((: read_file, HELP_FILE :)) acts
       just like read_file(HELP_FILE) except that the security
       only checks your object with the first call, but checks
       all objects in the call stack on the second call.

LOCATION
       /secure/sefun/security.c

Author
       Descartes of Borg

                                                                1

