! Created for V1.0 of GETUAI at Fermilab, Frank J. Nagy  27-Jul-86
! Edited for V1.2 by adding /DEFAULT qualifier (FJN, 28-Jul-86)
!
1 GETUAI
 The function of this program is to fetch User Authorization Information
 using the $GETUAI system service in lieu of an F$GETUAI lexical function.

 Definition and Calling Procedure:

    $ GETUAI :== $SYS$TOOLS:GETUAI
    $ GETUAI  username /qualifier...
 or
    $ GETUAI  . /qualifier...

 Since GETUAI uses the $GETUAI system service, it should work across VMS
 upgrades unlike GETUAF which reads and interprets the UAF records directly.
2 Privileges
 BYPASS or SYSPRV allows access to any record in the User Authorization
 File (UAF).

 GRPPRV allows access to any record in the UAF whose UIC group number
 matches that of the requestor.

 Any user can access any UAF record whose UIC matches his own.

2 Parameter
 The single parameter to the GETUAI command is the username for which
 the authorization information is to be returned.

 If the parameter is ".", then GETUAI will return information about the
 current username of the executing process.
 
2 Qualifiers
/ACCOUNT
 /ACCOUNT=symbol
 will return the account name text in the local DCL 'symbol' supplied.

/ASTLM
 /ASTLM=symbol
 will return the AST queue limit in the local DCL 'symbol' supplied.

/AUDIT
 /AUDIT=symbol
 will return "YES" if auditing of security relevant actions is enabled
 for this account (the AUDIT flag is set), otherwise "NO" will be returned
 in the local DCL 'symbol' supplied.

/AUTOLOGIN
 /AUTOLOGIN=symbol
 will return "YES" if only "automatic" logins are permitted for this
 account: interactive logins via the autologin mechanism, batch jobs
 or DECnet proxy access (the AUTOLOGIN flag is set).

 Otherwise "NO" will be returned in the local DCL 'symbol' supplied.

!/BATCH
! /BATCH=symbol
! will return the permitted hours of access for this account for batch
! jobs in the local DCL 'symbol' supplied.
!
/BIOLM
 /BIOLM=symbol
 will return the buffered I/O count limit in the local DCL 'symbol'
 supplied.

/BYTLM
 /BYTLM=symbol
 will return the buffered I/O byte limit in the local DCL 'symbol'
 supplied.

/CAPTIVE
 /CAPTIVE=symbol
 will return "YES" if this is a captive (aka turnkey) account (the
 CAPTIVE flag is set), otherwise "NO" will be returned in the local
 DCL 'symbol' supplied.

/CLI
 /CLI=symbol
 will return the name of the default command language interpreter (CLI)
 in the local DCL 'symbol' supplied.

/CLITABLES
 /CLITABLES=symbol
 will return the name of user-defined CLI tables for the account
 in the local DCL 'symbol' supplied.

/CPUTIME
 /CPUTIME=symbol
 will return the CPU time limit in the local DCL 'symbol' supplied
 as a delta-time value.  If the account has no CPU time limit, then
 the string "INFINITE" will be returned.

/CTRLY
 /CTRLY=symbol
 will return "NO" if Control-Y is disabled for the account at login
 (the DISCTLY flag is set), otherwise "YES" will be returned in the
 local DCL 'symbol' supplied.

/DEFAULT
 /DEFAULT=symbol
 will return the default disk and directory specification in the
 local DCL 'symbol' supplied.  The returned data is the combination
 of that supplied by the /DEVICE and /DIRECTORY qualifiers.

/DEFCLI
 /DEFCLI=symbol
 will return "YES" if this account is restricted to using the default
 command language intepreter by prohibiting the use of the /CLI qualifier
 at login time (the AUDIT flag is set), otherwise "NO" will be returned
 in the local DCL 'symbol' supplied.

/DEFPRIVILEGES
 /DEFPRIVILEGES=symbol
 /DEFPRIVILEGES=(symbol1,symbol2)
 will return the default privileges for the user (those enabled at login
 time) in the local DCL 'symbol' supplied as a list of privilege names
 separated by commas.

 For user accounts with lots of privileges, a list of 2 symbols should be
 used to permit all the privileges to be returned in two pieces (if the
 list will be accepted by a single symbol definition, then the second
 symbol will be defined as a null string).  This requirement is due to
 the limitation of a DCL symbol value to 255 characters.
/DEVICE
 /DEVICE=symbol
 will return the default disk device in the local DCL 'symbol' supplied.

!/DIALUP
! /DIALUP=symbol
! will return the permitted hours of access for this account via dialup
! logins in the local DCL 'symbol' supplied.
!
/DIOLM
 /DIOLM=symbol
 will return the direct I/O count limit in the local DCL 'symbol' supplied.

/DIRECTORY
 /DIRECTORY=symbol
 will return the default directory in the local DCL 'symbol' supplied.

/DISUSER
 /DISUSER=symbol
 will return "YES" if this account is disabled from any logins
 (the DISUSER flag is set) in the local DCL 'symbol' supplied.
 Normally, "NO" will be returned for an "enabled" account.

/ENQLM
 /ENQLM=symbol
 will return the lock queue limit in the local DCL 'symbol' supplied.

/EXPIRATION
 /EXPIRATION=symbol
 will return the expiration date and time in the local DCL 'symbol'
 supplied as an absolute date and time.  If there is no expiration
 date set for the account, then the string "NONE" will be returned.

/FILLM
 /FILLM=symbol
 will return the file open limit in the local DCL 'symbol' supplied.

/GENPWD
 /GENPWD=symbol
 will return "YES" if this account is required to use generated
 passwords (the GENPWD flag is set), otherwise "NO" will be returned
 in the local DCL 'symbol' supplied.

/JTQUOTA
 /JTQUOTA=symbol
 will return the initial byte quote with which the job-wide logical
 name table is create in the local DCL 'symbol' supplied.

/LAST_LOGIN
 /LAST_LOGIN=symbol
 will return the ASCII date and time of the last interactive login
 by this user as an absolute time value.  If this user has never
 logged in interactively, then the string "NONE" will be returned.

/INTERACTIVE_LOGIN
 /INTERACTIVE_LOGIN=symbol
 will return the ASCII date and time of the last interactive login
 by this user as an absolute time value.  If this user has never
 logged in interactively, then the string "NONE" will be returned.

 This is the same as the /LAST_LOGIN qualifier.
/NONINTERACTIVE_LOGIN
 /NONINTERACTIVE_LOGIN=symbol
 will return the ASCII date and time of the last non-interactive
 login (batch job or network access) by this user as an absolute time
 value.  If this user has never logged in non-interactively, then the
 string "NONE" will be returned.

/LGICMD
 /LGICMD=symbol
 will return the default login command file for the account in the
 local DCL 'symbol' supplied.

!/LOCAL
! /LOCAL=symbol
! will return the permitted hours of access for this account for
! interactive logins via local terminals in the local DCL 'symbol'
! supplied.
!
/LOCKPWD
 /LOCKPWD=symbol
 will return "YES" if the password is locked and the use of SET PASSWORD
 is prohibited (the LOCKPWD flag is set), otherwise "NO" will be returned
 in the local DCL 'symbol' supplied.

/LOGIN_FAILURES
 /LOGIN_FAILURES=symbol
 will return the number of login failures for this user since the last
 successful login.

/MAIL
 /MAIL=symbol
 will return "YES" if mail delivery is enabled for the account.
 Otherwise, (if the DISMAIL flag is set) "NO" is returned in the
 local DCL 'symbol' supplied.

/MAXACCTJOBS
 /MAXACCTJOBS=symbol
 will return the maximum number of batch, interactive and detached
 processes which may be active at one time for all users in the
 same account in the local DCL 'symbol' supplied.  

/MAXDETACH
 /MAXDETACH=symbol
 will return the active process limit in the local DCL 'symbol' supplied.
 The active process limit is the total number of detached processes
 permitted at one time.

/MAXJOBS
 /MAXJOBS=symbol
 will return the active process limit in the local DCL 'symbol' supplied.
 The active process limit is the total number of active processes
 (interactive, batch and detached) permitted at one time.

!/NETWORK
! /NETWORK=symbol
! will return the permitted hours of access for this account for
! network jobs in the local DCL 'symbol' supplied.
!
/NEWMAIL
 /NEWMAIL=symbol
 will return "YES" if "New Mail" messages are to be generated for
 for the account at login.  Otherwise, (if the DISNEWMAIL flag is
 is set) "NO" is returned in the local DCL 'symbol' supplied.

/OWNER
 /OWNER=symbol
 will return the full owner name of this user in the local DCL
 'symbol' supplied.

/PBYTLM
 /PBYTLM=symbol
 will return the paged buffer I/O byte count limit in the local DCL
 'symbol' supplied.

/PGFLQUOTA
 /PGFLQUOTA=symbol
 will return the paging file limit in the local DCL 'symbol' supplied.

/PRCLM
 /PRCLM=symbol
 will return the subprocess creation limit in the local DCL 'symbol'
 supplied.

/PRIMEDAYS
 /PRIMEDAYS=symbol
 will return the definition of the primary and secondary days of the
 week for this user in the local DCL 'symbol' supplied as a list of the
 primary days of the week (names separated by commas).

/PRIORITY
 /PRIORITY=symbol
 will return the default base priority in the local DCL 'symbol' supplied.

/PRIVILEGES
 /PRIVILEGES=symbol
 /PRIVILEGES=(symbol1,symbol2)
 will return the authorized privileges for the user in the local DCL
 'symbol' supplied as a list of privilege names separated by commas.

 For user accounts with lots of privileges, a list of 2 symbols should be
 used to permit all the privileges to be returned in two pieces (if the
 list will be accepted by a single symbol definition, then the second
 symbol will be defined as a null string).  This requirement is due to
 the limitation of a DCL symbol value to 255 characters.
/PWDATE
 /PWDATE=symbol
 will return the ASCII date and time when the password was last
 changed as an absolute time value.  If the password has never
 been changed, then the string "NONE" will be returned.

/PWEXPIRED
 /PWEXPIRED=symbol
 will return "YES" if the password has expired (the PWD_EXPIRED
 flag is set), otherwise "NO" will be returned in the local DCL
 'symbol' supplied.

/PWLENGTH
 /PWLENGTH=symbol
 will return the minimum password length in the local DCL 'symbol'
 supplied.

/PWLIFETIME
 /PWLIFETIME=symbol
 will return the password lifetime in the local DCL 'symbol' supplied
 as a delta-time value.  If the password has no expiration time limit,
 then "INFINITE" will be returned.

/PWMINIMUM
 /PWMINIMUM=symbol
 will return the minimum password length in the local DCL 'symbol'
 supplied.  Same as /PWLENGTH.

/P2DATE
 /P2DATE=symbol
 will return the ASCII date and time when the secondary password was
 last changed as an absolute time value.  If the secondary password
 has never been changed (or if there is no secondary password), then
 the string "NONE" will be returned.

/P2EXPIRED
 /P2EXPIRED=symbol
 will return "YES" if the secondary password has expired (the
 PWD2_EXPIRED flag is set), otherwise "NO" will be returned in the
 local DCL 'symbol' supplied.

/QUEUE_PRIORITY
 /QUEUE_PRIORITY=symbol
 will return the maximum job queue priority in the local DCL 'symbol'
 supplied.

/RECONNECT
 /RECONNECT=symbol
 will return "YES" if automated terminal reconnection is enabled
 for this account, otherwise "NO" will be returned (the DISRECONNECT
 flag is set) in the local DCL 'symbol' supplied.

!/REMOTE
! /REMOTE=symbol
! will return the permitted hours of access for this account for
! interative logins via network remote terminals in the local DCL
! 'symbol' supplied.
!
/REPORT
 /REPORT=symbol
 will return "YES" if reports of login information (last login date,
 login failures, etc.) are enabled for this account, otherwise "NO" will
 be returned (the DISREPORT flag is set) in the local DCL 'symbol' supplied.

/RESTRICTED
 /RESTRICTED=symbol
 will return "YES" if the account forces the use of a LOGIN command procedure
 but allowes the possibility of exiting to DCL level, otherwise "NO" will be
 returned in the local DCL symbol supplied. See also /CAPTIVE.

/SHRFILLM
 /SHRFILLM=symbol
 will return the shared file open limit in the local DCL 'symbol'
 supplied.

/TQELM
 /TQELM=symbol
 will return the timer queue limit in the local DCL 'symbol' supplied.

/UIC
 /UIC=symbol
 will return the UIC in the local DCL 'symbol' supplied.  The UIC is
 returned in the format "[ggg,mmm]" with octal numbers for the group
 and member number.

/USERNAME
 /USERNAME=symbol
 will return the username in the local DCL 'symbol' supplied.

/WELCOME
 /WELCOME=symbol
 will return "YES" if welcoming messages are to be displayed
 for the account at login.  Otherwise, (if the DISWELCOM flag
 is set) "NO" is returned in the local DCL 'symbol' supplied.

/WSDEFAULT
 /WSDEFAULT=symbol
 will return the default working set size in the local DCL
 'symbol' supplied.

/WSEXTENT
 /WSEXTENT=symbol
 will return the working set extent in the local DCL 'symbol' supplied.

/WSQUOTA
 /WSQUOTA=symbol
 will return the working set quota in the local DCL 'symbol' supplied.

