home *** CD-ROM | disk | FTP | other *** search
/ Piper's Pit BBS/FTP: ibm 0020 - 0029 / ibm0020-0029 / ibm0028.tar / ibm0028 / SBTAR4.ZIP / ARPASS.PRG < prev    next >
Encoding:
Text File  |  1990-06-04  |  11.5 KB  |  368 lines

  1. ********************** ' MultiNet Source Code ' ***********************
  2. ** '                       SBT Corporation                         ' **
  3. ** '         One Harbor Drive, Sausalito, California 94965         ' **
  4. ** '                   Telephone (415) 331-9900                    ' **
  5. ***********************************************************************
  6. ** '   (c) Copyright 1984, Revisions 1985 - 1990 SBT Corporation   ' **
  7. ** '            All Rights Reserved by SBT Corporation             ' **
  8. ** '                                                               ' **
  9. ***********************************************************************
  10. ** ' 06/04/90 = Last Update  **  ARPASS.PRG  **    Version 6.35.00 ' **
  11. ***********************************************************************
  12. * ' Password File Maintenance - called by ARSYST
  13. *
  14. CLOSE DATABASES
  15. SELECT a
  16. STORE .f. TO mdel
  17. IF .NOT. FILE('&m0passf..ndx')
  18.   USE &m0passf
  19.   INDEX ON password TO &m0passf..ndx
  20.   STORE .t. TO mdel
  21. ELSE
  22.   USE &m0passf INDEX &m0passf..ndx
  23. ENDIF
  24. STORE .t. TO merase
  25. DO WHILE .t.
  26.   IF merase
  27.     CLEAR
  28.     @ 1,1 SAY DTOC(m0date)
  29.     @ 1,40 - INT(LEN(m0system)/2) SAY m0system
  30.     @ 1,73 SAY SUBSTR(m0company,79,6)
  31.     @ 2,1 SAY SUBSTR(m0company,1,78)
  32.     @ 3,28 SAY 'Password File Maintenance'
  33.     STORE .f. TO merase
  34.   ENDIF
  35.   STORE .f. TO m0new
  36.   STORE SPACE(10) TO mpass
  37.   @ 6,0
  38.   @ 6,1 SAY 'Enter Password, "?" to List, or <Enter> to Quit ' + ;
  39.   SUBSTR(m0border,179,7) GET mpass PICTURE '!!!!!!!!!!'
  40.   READ
  41.   CLEAR GETS
  42.   IF SUBSTR(mpass,1,1) = ' '
  43.     @ 7,0 CLEAR
  44.     STORE 'Y' TO mans
  45.     @ 8,1 SAY 'Finished ? (Y/N) ' + SUBSTR(m0border,179,7) ;
  46.     GET mans PICTURE 'Y'
  47.     READ
  48.     IF mans = 'N'
  49.       @ 8,0
  50.       LOOP
  51.     ENDIF
  52.     USE
  53.     IF mdel
  54.       DELETE FILE &m0passf..ndx
  55.     ENDIF
  56.     CLEAR
  57.     @ 9,14 SAY '*****  Returning to Setup Information Menu  *****'
  58.     RETURN
  59.   ENDIF
  60.   SET EXACT ON
  61.   SEEK mpass
  62.   SET EXACT OFF
  63.   IF EOF()
  64.     STORE 'Password' TO mtitle
  65.     STORE 'Password ' TO mheading
  66.     STORE TRIM(mpass) TO m0key
  67.     STORE 'password' TO m0field
  68.     STORE 'ARPASS' TO m0file
  69.     * ' Call procedure to list on screen
  70.     DO syslist WITH m0field, m0key, m0file, 4
  71.     SEEK mpass
  72.     IF .NOT. m0new .AND. EOF()
  73.       STORE .f. TO merase
  74.       LOOP
  75.     ENDIF
  76.     @ 4,0 CLEAR
  77.   ENDIF && EOF()
  78.   STORE SPACE(10) TO mxpass
  79.   CLEAR
  80.   STORE SUBSTR(m0border,7,1) TO medge
  81.   @ 1,0 SAY SUBSTR(m0border,1,1) + SUBSTR(m0border,10,24)  + ;
  82.   '  Password File Maintenance  ' + SUBSTR(m0border,10,24) + ;
  83.   SUBSTR(m0border,3,1)
  84.   @ 2,0 SAY medge
  85.   @ 2,78 SAY medge
  86.   @ 3,0 SAY medge + '  Password  ' + SUBSTR(m0border,181, 5)
  87.   @ 3,78 SAY medge
  88.   @ 4,0 SAY medge
  89.   @ 4,78 SAY medge
  90.   @ 5,0 SAY medge + '  This password allows access to the following:'
  91.   @ 5,78 SAY medge
  92.   @ 6,0 SAY medge
  93.   @ 6,78 SAY medge
  94.   @ 7,0 SAY medge + '  Enter Invoices                             ' + ;
  95.   SUBSTR(m0border,182,4)
  96.   @ 7,62 SAY '(Y/N)'
  97.   @ 7,78 SAY medge
  98.   @ 8,0 SAY medge + '  Enter Cash Receipts & Credit Memos         ' + ;
  99.   SUBSTR(m0border,182,4)
  100.   @ 8,78 SAY medge
  101.   @ 9,0 SAY medge + '  Cancel Invoices/Credit Memos               ' + ;
  102.   SUBSTR(m0border,182,4)
  103.   @ 9,78 SAY medge
  104.   @ 10,0 SAY medge + '  Access File Maintenance Menu               ' + ;
  105.   SUBSTR(m0border,182,4)
  106.   @ 10,78 SAY medge
  107.   @ 11,0 SAY medge + '  Compute Finance Charges                    ' + ;
  108.   SUBSTR(m0border,182,4)
  109.   @ 11,78 SAY medge
  110.   @ 12,0 SAY medge + '  Print and Display Reports                  ' + ;
  111.   SUBSTR(m0border,182,4)
  112.   @ 12,78 SAY medge
  113.   @ 13,0 SAY medge + '  Print Labels                               ' + ;
  114.   SUBSTR(m0border,182,4)
  115.   @ 13,78 SAY medge
  116.   @ 14,0 SAY medge + '  Print Invoices and Statements              ' + ;
  117.   SUBSTR(m0border,182,4)
  118.   @ 14,78 SAY medge
  119.   @ 15,0 SAY medge + '  Close Period & Process Recurring Billings  ' + ;
  120.   SUBSTR(m0border,182,4)
  121.   @ 15,78 SAY medge
  122.   @ 16,0 SAY medge + '  Change Setup/Reindex/Business Status       ' + ;
  123.   SUBSTR(m0border,182,4)
  124.   @ 16,78 SAY medge
  125.   @ 17,0 SAY medge + '  Maintain Passwords & Delete Company        ' + ;
  126.   SUBSTR(m0border,182,4)
  127.   @ 17,78 SAY medge
  128.   IF SUBSTR(m0link,1,1) = 'Y'
  129.     @ 18,0 SAY medge + '  Release Information to General Ledger      ' + ;
  130.     SUBSTR(m0border,182,4)
  131.   ELSE
  132.     @ 18,0 SAY medge
  133.   ENDIF
  134.   @ 18,78 SAY medge
  135.   @ 19,0 SAY medge
  136.   @ 19,78 SAY medge
  137.   @ 20,0 SAY SUBSTR(m0border,4,1) + SUBSTR(m0border,10,77) + ;
  138.   SUBSTR(m0border,6,1)
  139.   STORE ' ' TO mans
  140.   DO WHILE .t.
  141.     SET ESCAPE ON
  142.     IF m0new
  143.       IF mans = ' '
  144.         STORE 'N' TO maccess1, maccess2, maccess3, maccess4, maccess5, ;
  145.         maccess6, maccess7, maccess8, maccess9, maccess10, maccess11, ;
  146.         maccess12
  147.       ENDIF
  148.     ELSE
  149.       IF EOF() .OR. BOF()
  150.         ?? CHR(7)
  151.         STORE ' ' TO mans
  152.         IF EOF()
  153.           @ 22,2 SAY 'End of File.  Press any key to continue...' GET mans
  154.           GO BOTTOM
  155.         ELSE
  156.           @ 22,2 SAY 'Top of File.  Press any key to continue...' GET mans
  157.           GO TOP
  158.         ENDIF
  159.         READ
  160.         @ 22,0
  161.       ENDIF
  162.       IF mans <> 'E'
  163.         STORE a->password TO mpass, mxpass
  164.         STORE a->access1 TO maccess1
  165.         STORE a->access2 TO maccess2
  166.         STORE a->access3 TO maccess3
  167.         STORE a->access4 TO maccess4
  168.         STORE a->access5 TO maccess5
  169.         STORE a->access6 TO maccess6
  170.         STORE a->access7 TO maccess7
  171.         STORE a->access8 TO maccess8
  172.         STORE a->access9 TO maccess9
  173.         STORE a->access10 TO maccess10
  174.         STORE a->access11 TO maccess11
  175.         STORE a->access12 TO maccess12
  176.         STORE access1 + access2 + access3 + access4 + access5 + access6 + ;
  177.         access7 + access8 + access9 + access10 + access11 + access12 + ;
  178.         access13 + access14 + access15 TO maccess0
  179.       ENDIF && mans <> 'E'
  180.     ENDIF && m0new
  181.     IF (SUBSTR(m0pass,1,10) = mxpass .AND. mans = 'E') .OR. m0new
  182.       @ 3,20 SAY mpass PICTURE '!!!!!!!!!!'
  183.     ELSE
  184.       @ 3,20 GET mpass PICTURE '!!!!!!!!!!'
  185.     ENDIF
  186.     @ 7,55 GET maccess1 PICTURE 'Y'
  187.     @ 8,55 GET maccess2 PICTURE 'Y'
  188.     @ 9,55 GET maccess3 PICTURE 'Y'
  189.     @ 10,55 GET maccess4 PICTURE 'Y'
  190.     @ 11,55 GET maccess5 PICTURE 'Y'
  191.     @ 12,55 GET maccess6 PICTURE 'Y'
  192.     @ 13,55 GET maccess7 PICTURE 'Y'
  193.     @ 14,55 GET maccess8 PICTURE 'Y'
  194.     @ 15,55 GET maccess9 PICTURE 'Y'
  195.     @ 16,55 GET maccess10 PICTURE 'Y'
  196.     IF SUBSTR(m0pass,1,10) = mxpass .AND. (m0new .OR. mans = 'E')
  197.       @ 17,55 SAY maccess11 PICTURE 'Y'
  198.     ELSE
  199.       @ 17,55 GET maccess11 PICTURE 'Y'
  200.     ENDIF
  201.     IF SUBSTR(m0link,1,1) = 'Y'
  202.       @ 18,55 GET maccess12 PICTURE 'Y'
  203.     ENDIF
  204.     IF m0new .OR. mans = 'E'
  205.       READ
  206.     ENDIF
  207.     CLEAR GETS
  208.     DO CASE
  209.       CASE DELETED() .AND. .NOT. m0new
  210.         STORE 'R' TO mans
  211.         ?? CHR(7)
  212.         @ 21,3 SAY '***  Password Deleted  ***'
  213.         STORE 'Enter Choice (Recall/Fwd/Back/Quit) ' TO msg
  214.         STORE 'RFBQ' TO moptns
  215.       CASE mans = 'E' .OR. m0new
  216.         STORE 'S' TO mans
  217.         IF m0new
  218.           STORE 'Save New Password ? (Save/Edit again/Cancel) ' TO msg
  219.         ELSE
  220.           STORE 'Save Changes to this Password ? (Save/Edit again/Cancel) ' ;
  221.           TO msg
  222.         ENDIF
  223.         STORE 'SEC' TO moptns
  224.       CASE SUBSTR(m0pass,1,10) = mxpass
  225.         STORE 'E' TO mans
  226.         STORE 'Enter Choice (Edit/Fwd/Back/Quit) ' TO msg
  227.         STORE 'EFBQ' TO moptns
  228.       OTHERWISE
  229.         STORE 'E' TO mans
  230.         STORE 'Enter Choice (Edit/Delete/Fwd/Back/Quit) ' TO msg
  231.         STORE 'EDFBQ' TO moptns
  232.     ENDCASE
  233.     @ 22,3 SAY msg + SUBSTR(m0border,179,7) GET mans PICTURE '!'
  234.     READ SAVE
  235.     DO WHILE .NOT. mans $ moptns
  236.       ?? CHR(7)
  237.       READ SAVE
  238.     ENDDO
  239.     @ 21,0 CLEAR
  240.     CLEAR GETS
  241.     DO CASE
  242.       CASE mans = 'E'
  243.         LOOP
  244.       CASE mans = 'F'
  245.         IF .NOT. EOF()
  246.           SKIP
  247.         ENDIF
  248.         LOOP
  249.       CASE mans = 'B'
  250.         IF .NOT. BOF()
  251.           SKIP -1
  252.         ENDIF
  253.         LOOP
  254.       CASE mans = 'R'
  255.         DO p0rlockd
  256.         IF .NOT. lockedr
  257.           LOOP
  258.         ENDIF
  259.         RECALL
  260.         UNLOCK
  261.         LOOP
  262.       CASE mans $ 'QC'
  263.         EXIT
  264.       CASE mans = 'S'
  265.         SET ESCAPE OFF
  266.         IF m0new
  267.           DO p0flockd
  268.           IF .NOT. lockedf
  269.             LOOP
  270.           ENDIF
  271.           APPEND BLANK
  272.         ELSE
  273.           DO p0flockd
  274.           IF .NOT. lockedf
  275.             LOOP
  276.           ENDIF
  277.           SEEK mpass
  278.           DO WHILE mpass <> mxpass .AND. .NOT. EOF()
  279.             UNLOCK
  280.             ?? CHR(7)
  281.             @ 22,3 SAY 'Password is already in use.  Please reenter ' + ;
  282.             'or blank to cancel...'
  283.             @ 3,20 GET mpass PICTURE '!!!!!!!!!!'
  284.             READ
  285.             @ 22,0
  286.             DO p0flockd
  287.             IF mpass = SPACE(10) .OR. .NOT. lockedf
  288.               STORE SPACE(10) TO mpass
  289.               EXIT
  290.             ENDIF
  291.             SEEK mpass
  292.           ENDDO
  293.           IF mpass = SPACE(10)
  294.             UNLOCK
  295.             LOOP
  296.           ENDIF
  297.           SEEK mxpass
  298.           IF access1 + access2 + access3 + access4 + access5 + access6 + ;
  299.             access7 + access8 + access9 + access10 + access11 + access12 + ;
  300.             access13 + access14 + access15 <> maccess0 .OR. DELETED()
  301.             UNLOCK
  302.             STORE ' ' TO ans
  303.             @ 22,3 SAY 'Password has been changed by another user. ' + ;
  304.             'Unable to update. Press any key...' GET ans
  305.             READ
  306.             LOOP
  307.           ENDIF
  308.         ENDIF
  309.         @ 22,3 SAY '*****  Updating Password File  *****'
  310.         REPLACE password WITH mpass, access1 WITH maccess1, access2 WITH ;
  311.         maccess2, access3 WITH maccess3, access4 WITH maccess4, access5 ;
  312.         WITH maccess5, access6 WITH maccess6, access7 WITH maccess7
  313.         REPLACE access8 WITH maccess8, access9 WITH maccess9, access10 ;
  314.         WITH maccess10, access11 WITH maccess11, access12 WITH maccess12
  315.         IF SUBSTR(m0pass,1,10) = mpass
  316.           STORE password + access1 + access2 + access3 + access4 + access5 + ;
  317.           access6 + access7 + access8 + access9 + access10 + access11 + ;
  318.           access12 + access13 + access14 + access15 TO m0pass
  319.         ENDIF
  320.         UNLOCK
  321.         SET ESCAPE ON
  322.         @ 21,0
  323.         IF m0new
  324.           STORE .f. TO m0new
  325.           EXIT
  326.         ENDIF
  327.       CASE mans = 'D'
  328.         ?? CHR(7)
  329.         STORE 'N' TO mans
  330.         @ 22,3 SAY 'Delete this Password ? (Y/N) ' + ;
  331.         SUBSTR(m0border,179,7) GET mans PICTURE 'Y'
  332.         READ
  333.         @ 22,0
  334.         IF mans = 'Y'
  335.           DO p0rlockd
  336.           IF .NOT. lockedr
  337.             LOOP
  338.           ENDIF
  339.           IF access1 + access2 + access3 + access4 + access5 + access6 + ;
  340.             access7 + access8 + access9 + access10 + access11 + access12 + ;
  341.             access13 + access14 + access15 <> maccess0 .OR. DELETED()
  342.             UNLOCK
  343.             STORE ' ' TO ans
  344.             @ 22,3 SAY 'Password has been changed by another user. ' + ;
  345.             'Unable to delete. Press any key...' GET ans
  346.             READ
  347.             LOOP
  348.           ENDIF
  349.           DELETE
  350.           UNLOCK
  351.           @ 22,3 SAY '*****  Delete Completed  *****'
  352.         ELSE
  353.           @ 22,3 SAY '*****  Delete Cancelled  *****'
  354.         ENDIF
  355.         @ 21,0 CLEAR
  356.     ENDCASE
  357.   ENDDO && WHILE .t.
  358.   STORE .t. TO merase
  359. ENDDO && WHILE .t.
  360. RETURN
  361. *
  362. * ' $Revision:   1.10  $
  363. * ' $Date:   25 May 1990 16:22:56  $
  364. **********************
  365. ** '  ARPASS.PRG  ' **
  366. ** '  367 Lines   ' **
  367. **********************
  368.