PROC change_terminal_environment chate (
  configuration_file_access, cfa: key on off = $required
  family_name, fn: name = $required
  user_name, un: name = $required
  status)


    create_variable ignore_status k=status

  WHEN any_fault DO
    display_value osv$status output=$response
  WHENEND


  IF NOT $job(system) THEN
    text = 'CHANGE_TERMINAL_ENVIRONMENT'//$char(31)//'except from the console'
    EXIT_PROC WITH $status(FALSE, 'RA', rae$illegal_command_call, text)
  IFEND


  IF $string($value(configuration_file_access)) = 'ON' THEN
    create_file_permit $system.mainframe.configuration g=user ..
          fn=$value(family_name) u=$value(user_name) am=READ
    create_catalog $system.site_os_maintenance status=ignore_status
    create_catalog $system.site_os_maintenance.deadstart_commands status=ignore_status
    create_catalog_permit $system.site_os_maintenance g=user ..
          fn=$value(family_name) u=$value(user_name) am=(READ SHORTEN APPEND EXECUTE CYCLE)
    create_file_permit $system.software_maintenance.raf$library g=user ..
          fn=$value(family_name) u=$value(user_name) am=(READ EXECUTE)
    create_catalog_permit $system.nosve_maintenance.deadstart_commands g=user ..
          fn=$value(family_name) u=$value(user_name) am=(READ EXECUTE)
  ELSE
    delete_file_permit $system.mainframe.configuration g=user ..
          fn=$value(family_name) u=$value(user_name)
    delete_catalog_permit $system.site_os_maintenance g=user ..
          fn=$value(family_name) u=$value(user_name)
    delete_file_permit $system.software_maintenance.raf$library g=user ..
          fn=$value(family_name) u=$value(user_name)
    delete_catalog_permit $system.nosve_maintenance.deadstart_commands g=user ..
          fn=$value(family_name) u=$value(user_name)
  IFEND


PROCEND change_terminal_environment

