
    BATCH_ACL Program Description and Setup Instructions.

    Problem Statement and Program Purpose:

	My system has 7 batch queues (FAST,  BATCH1, BATCH2, BATCH3,
	BATCH4, TURTLE, and SYSTEM). Some users can only access FAST
	and  TURTLE  queues while other users can access all queues,
	except for  SYSTEM.  The queues a user  can have  access  to
	depends  upon the type  of account  and  the amount of money
	owed to  this facility.  This setup means  the queues a user
	can access may change on a monthly basis. I really needed to
	put ACLs on each queue.  Since DEC does not provide a way to
	do this (I could not find out how) I wrote BATCH_ACL.

    Program Setup:

	In AUTHORIZE, I added the following identifiers:

			FAST_QUEUE
			BATCH1_QUEUE
			BATCH2_QUEUE
			BATCH3_QUEUE
			BATCH4_QUEUE
			TURTLE_QUEUE
			SYSTEM_QUEUE

	I  then granted  the appropriate  identifiers to  all  users
	based  on the queue  they  are allowed to use.  In my system
	login command file (SYS$SYSROOT:[SYSMGR]SYLOGIN.COM) I added
	the following command:

	$ IF F$MODE() .EQS. "BATCH" THEN RUN SYS$SYSTEM:BATCH_ACL
	
	BATCH_ACL gets the  name of the  queue,  appends '_QUEUE' to
	it,  and then compares it to all of the identifiers  held by
	the batch job.  If the name of  the batch queue  matches  an
	identifier held by the job,  BATCH_ACL exits.  Otherwise the
	batch job is logged off (LOGOUT/FULL) the system after FATAL
	"no  authorization"   and  "job  terminated"  messages   are
	displayed.

	Since  this program  is written in  FORTRAN and is a modular
	program,  modification of it to meet the specific needs of a
	particular site should be simple and painless.

	To  speed up the  image activation time, I install BATCH_ACL
	with  the  /OPEN  /HEADER and /SHARED qualifiers.  BATCH_ACL
	does  not require any  privileges or  special considerations
	that I am aware of except for the 3 global sections that are
	used when it is installed.

	If any problems or bugs are encountered, please feel free to
	contact me by U.S. Mail or phone.  My name and address is in
	the source code.

