home *** CD-ROM | disk | FTP | other *** search
/ Beijing Paradise BBS Backup / PARADISE.ISO / software / BBSDOORW / SFUED111.ZIP / README17.SFU < prev    next >
Encoding:
Text File  |  1992-12-24  |  25.5 KB  |  558 lines

  1.  
  2.               StormFront User Editor for the Opus CBCS
  3.                    Copyright 1992 by Kevin Silcox
  4.  
  5.                                                       December 23, 1992
  6.  
  7. Disclaimer
  8. ----------
  9.     This software is available "AS IS".  It is not guaranteed to work at
  10. all. If it trashes your system or ruins your life, you have been warned.
  11. I am not responsible for any damages incurred from the use or misuse of
  12. this software.  There is also no fee to use this software to keep with
  13. the spirit of Opus.
  14.  
  15.     You will have to get by without any real documentation until I, or
  16. someone else writes some for this program.  If you know Opus and how it
  17. works, then this program should be pretty much self-explanatory as far
  18. as what the actual changes to the user database do.  So for now, there's
  19. only a brief description of how to use the actual functions of the program.
  20. Even though SFUE17 may not have the most user-friendly interface, I think
  21. that its flexibility is worth the struggle you *may* go through when you
  22. first start to use it.  Enjoy!
  23.  
  24.   WARNING: If you're running Opus in a multi-tasking environment then make
  25.   sure that you DO NOT Sort or Zap the database when there is a potential
  26.   for Opus to need to use the user database! (i.e. If a user calls and
  27.   tries to login.)
  28.  
  29.  
  30. --=={*-------------------------------------------------*}==--
  31.     This version: 1.11     --->  For Opus v1.7x/v1.8x
  32.  
  33.     Requires approximately 150K of Available RAM.  Requires
  34.     more if using the Sort option (based on number of records
  35.     in your database --> about 28 bytes for each record, up to
  36.     a maximum of about 2300 records, plus 8 bytes per CWF). If
  37.     anyone exceeds 2300 records then please let me know.  The
  38.     Verify needs 24 bytes per record, and the Tag array needs
  39.     1 byte per record.  The maximum memory requirement should
  40.     be about 210K.
  41.  
  42. **> I recommend you use an EXE compressor such as PKlite in
  43.     order to reduce the program size (by about 53% with
  44.     PKLite v1.15).
  45.  
  46.     This program is for maintaining the user database used with
  47. Opus.  It is capable of adding users, marking them to be ReUsed,
  48. Purged, and even Removing users marked to be Purged (Zap), along
  49. with many other nifty features.
  50.  
  51.  
  52.  
  53. -*-
  54.  
  55.     The program accepts a command-line argument for local and non-
  56. local use.  Entering an argument other than those arguments listed
  57. will display a brief help screen.  You may either use '-' or '/'
  58. characters for each argument.  The arguments are as follows:
  59.  
  60.  /VM force Mono mode       /VC force Color mode    /VA AutoDetect Video
  61.  /VD force DOS Writes      /VB force BIOS Writes   /VX Translate IBM Graphics
  62.  /Z[E][days] Zap database  /P{priv}[+/-]           /Ud:\\path\\[filename]
  63.  /O[{1st}[{order}][,{2nd}[{order}]][,start[,end]]] Sort database
  64.  /I  Install/Reconfigure   /E[days] Expiration Reset
  65.  
  66. *
  67.     The /VM and /VC options are only to force the memory address for the
  68. direct-screen writes if the program doesn't recognize the correct video
  69. mode.  If no arguments are entered, the program will AutoDetect which
  70. video mode to use for the direct-screen writes (or whatever mode has
  71. been selected as the default).  If you use the DOS option then I/O may
  72. be redirected.
  73.  
  74. *
  75.     The /U allows you to specify the name of the User Database file
  76. that you want to use instead of the default USER.DAT.  If you specify
  77. just the full path without a filename, USER.DAT will be assumed (you
  78. must have a "\" after the path though).
  79.  
  80. *
  81.     You may either use the /VX (Translate) option from the command-line,
  82. or use CTRL-X to toggle IBM Graphics translation ON and OFF from the
  83. user edit screen. NOTE: When translation is turned ON, the IBM Graphics
  84. characters in the Report will be translated also.
  85.  
  86. *
  87.     There are several ways of executing a database Zap.  If you just
  88. specify /Z then only records that have a Status of 'Purge' will be
  89. removed.  If you specify a number (/Z90) then any user that hasn't called
  90. in that many days will be removed.  If you specify /ZE then SFUE17 will
  91. check the expiration fields in each record to decide whether a user
  92. should be removed or demoted (based on the Date or Time fields and Action
  93. field).  You can localize the processing based on privilege level if you
  94. use the /P option.  See the Zap option below for more information.
  95.  
  96.   i.e.  SFUE17 /ZE /PN-
  97.   The above selection would check the expiration fields, check the user
  98.   status field, and *only* remove the user if their privilege level is
  99.   Normal or below.
  100.  
  101.  
  102. *
  103.     The /P is a Privilege level selector that can be used with either
  104. the /E or /Z options to localize processing to specific privilege
  105. levels (or level).  If you use *both* the /Z and /E options they will
  106. both use the same Privilege level range, but the Expiration fields
  107. will be updated before the database gets "Zapped".
  108.  
  109.  
  110. *
  111.     The Sort option may look complex, but it works the same as if you
  112. were to enter the options from inside the program.  If you just specify
  113. /O then all the defaults will be used.  {1st} and {2nd} are the primary
  114. and secondary sort keys respectively.  For the Name and Alias you can
  115. specify a second letter for the first or last name (last name is the
  116. default for both).  {order} is either an 'A' or 'D' (ascending or
  117. descending).  The start and end are the stsrt and end records
  118. respectively.  Here are some examples:
  119.  
  120.   SFUE17 /OPD,NLD,3,0
  121.     -- Sort records 3 to end by descending priv, descending last
  122.     name
  123.   SFUE17 /O,A,3
  124.     -- Sort records 3 to end by descending priv, descending last
  125.     alias name
  126.   SFUE17 /ONFA
  127.     -- Sort records 2 to end by ascending first name
  128.   SFUE17 /O,,3
  129.     -- Sort records 3 to end using the default sort order
  130.  
  131.   Hope that's enough to give you an idea on how to sort from the command-
  132.   line.  Once you're familiar with the keys you press from inside the
  133.   program, and when you get used to the format it gets pretty easy to use.
  134.   Basically, each key you press inside the program will go onto the
  135.   command-line, and wherever you just press <cr> to accept a default
  136.   you can just leave that key out.
  137.  
  138. *
  139.     Use /I to change the default parameters.  NOTE: Not all parameters
  140. saved in the INI file get priority.  For example, if the OPUS environment
  141. variable is pointing to a PRM file, it will be used instead of the name
  142. stored in the INI file.  The INI file is mainly used as a backup method
  143. to make locating the files it needs more reliable and save other important
  144. information that the program uses.
  145.  
  146.  
  147. *
  148.     By using the /E option you can automatically reset each users'
  149. expiration date based on their last call.  This is to be used in conjunction
  150. with the Expiration Controls within Opus.  If you don't specify the
  151. day count on the command-line, SFUE17 will extract and use the value
  152. in the PRM file.  This feature makes it nice to make sure each user
  153. will be removed if their account is inactive over a certain number of
  154. days.  This option is only available from the command-line.
  155.  
  156.  
  157. *
  158.  
  159.  
  160. *--===--*
  161.  
  162.  
  163.     Whenever there has been a modification to the current user record,
  164. SFUE17 will place an asterisk '*' at the top right-hand side of the
  165. screen.  There are two things that SFUE17 *may* change automatically.
  166. If the number of times a user has called the system is zero (0), it will
  167. be changed to one (1).  Also, if the user has QkMenu (Return to Last
  168. Menu) turned on, SFUE17 will try to make sure the menu is valid to prevent
  169. Opus from choking. :-)
  170.  
  171.     Also, if the current users' account is going to "Expire" then their
  172. status field will have a blinking red asterisk (*'s) on both sides of
  173. the Status field.
  174.  
  175.     If a record has been Tagged, then a 'T' will be displayed on the top
  176. line just before the User Status.  Records will only remain tagged for
  177. the current session.
  178.  
  179.     There are now two indicators in ScrnSect 1 (as of v1.08).  The one
  180. that you probably won't see is the '[COPY]' indicator.  This indicates
  181. that you are NOT currently editing the database that Opus uses.  If you
  182. are editing the actual database that Opus uses, then you won't see the
  183. '[COPY]'.  The other indicator is '*CWF*' which indicates that the user
  184. being displayed has a CWF file in the Opus root directory (#.?BS).  This
  185. is displayed whether you're editing a copy of the database or the real one.
  186.  
  187.     When using the Inactivity timer, the program will beep at 5 second
  188. intervals starting 20 seconds before exiting.
  189.  
  190.  
  191.  
  192.  
  193. **==--==**
  194.  
  195.  ** NOTE:  SFUE17 will always try to show the users' Real Name in
  196.            the Name field and their Alias in the Alias field, based
  197.            on the information in the PRM file.
  198.  
  199.       The help screen inside the program takes priority over this file.
  200. In the lower right-hand corner of the User Screen are the most used
  201. commands that are available in all ScreenSections.  Below is a brief
  202. description of what they do:
  203.  
  204.     ?)  Help:           Displays a help screen.
  205.  
  206.     R)  Record Number:  This allows you to go to a specific record number
  207.                        within the database.
  208.  
  209.     @)  Tag/Untag:   This will toggle whether a user record has been marked
  210.                       as 'Tagged'.
  211.  
  212.     *)  Utilities:   This is for maintaining the database.  Options are:
  213.             Adduser: If you need to add a user, this is what you'll use.
  214.                       It has gives you the option of just adding a record
  215.                       at the end of the database, or searching for a record
  216.                       marked with the "Reuse" status.  If you choose to
  217.                       search for a record to Reuse, and there is a record
  218.                       marked with the Reuse status, then that record will be
  219.                       cleared of its information and you may start entering
  220.                       the new user information in that record.
  221.  
  222.             rEstore: This is if you want to add the users in USER.SAV back into
  223.                       the database.  If successful, USER.SAV will be deleted
  224.                       and a new USER.SAV will be created with a size of zero
  225.                       bytes.  This will allow you to Undelete the old savefile
  226.                       if necessary.
  227.  
  228.             Find   : This allows you to search certain fields for a string.
  229.                       It's useful for finding a specific user quickly, among
  230.                       other things. (Previously called Search)
  231.  
  232.             Global : Allows you to make certain changes to specific (or all)
  233.                       users.  You may specify to set only a certain privilege
  234.                       level, or the default is all records (record #1 will
  235.                       NOT be touched).  There are also sub-levels that I
  236.                       don't feel like going into.
  237.                       -=***=-
  238.                       I feel that the options for changing Keys and Sections
  239.                       may cause some confusion.  With those two options there
  240.                       are 4 sub-options [Exact/Set/Toggle/Unselect]:
  241.  
  242.                         Exact:    Set each user to exactly the keys you
  243.                                   specify.  If you only select the 'A' key,
  244.                                   that's the only key the users' will have
  245.                                   no matter what they started out with.
  246.                         Set:      All keys you specify will be turned ON for
  247.                                   each user.
  248.                         Toggle:   Exactly what it says...  If you select the 'A'
  249.                                   key each users' keys will be set to the
  250.                                   opposite it started out as.
  251.                         Unselect: The opposite of Set.  It will make sure each
  252.                                   key you select is turned OFF.
  253.  
  254.             sOrt   : This will sort your database based on the keys you
  255.                       select, and whether you select Ascending or Descending
  256.                       order for each key.  You may select up to two keys to
  257.                       sort by.  If the database you're sorting is the same
  258.                       one pointed to by the PRM file, then the CWF's will
  259.                       be updated accordingly.  If there is a problem renaming
  260.                       a CWF, it will be most probably be renamed with a .BAK
  261.                       extension.
  262.  
  263.             Report : This generates a report for all users and sends it either
  264.                       to the Screen, Printer, or a File.  You can Pause the
  265.                       output by pressing 'P', or have an option to Abort by
  266.                       pressing 'ESC'.  You are asked several questions about
  267.                       how the report should be, but I don't have the time to
  268.                       go into detail explaining it...  However, I will state
  269.                       that SFUE17 will NOT send control codes to the printer,
  270.                       but only format the report appropriately.  Setting your
  271.                       printer into the proper font size and LPI setting is
  272.                       up to you.  When sending to the printer or a file, there
  273.                       will be a progress indicator (percent complete).
  274.  
  275.             User Status:  This allows you to modify the status of a user's
  276.                           record.  The Status can be one of the following:
  277.                             Normal: This is a normal record.
  278.                             Reuse : As new users are added, they will be
  279.                                      placed in records marked with this
  280.                                      status instead of being added to the
  281.                                      end of the database.
  282.                             Purge : This means that if you use the Zap
  283.                                      function, the record will be removed
  284.                                      from the database.  Also used by OMAN.
  285.                         Update ID : This will update the caller ID number
  286.                                      but should only be used if the
  287.                                      caller_ID is all zero's or in conflict
  288.                                      with another record.
  289.  
  290.             Verify : You should use this to occassionally check for problem
  291.                       records.  This will scan all the records and make sure
  292.                       the names and ID's are valid.  Any records that have
  293.                       zero ID's, matching ID's, or matching Names will be
  294.                       automatically tagged so that you can use CTRL-N/CTRL-P
  295.                       (Next/Previous tagged record, respectively) to easily
  296.                       look through the marked records.  The field that is
  297.                       in conflict with another field will have a visible
  298.                       indicator.  If the name field is marked, then you need
  299.                       to look for another user with the same name and take
  300.                       whatever action you feel will fix the dupe.  The same
  301.                       goes for the ID field.
  302.  
  303.             sWap   : This allows you to swap any two records with each other.
  304.  
  305.             Zap    : This removes any records marked with the Purge status.
  306.                       Also you can specify the number of days a user can go
  307.                       without calling the system before he/she is removed
  308.                       from the database.  In addition you can check the
  309.                       expiration fields and localize processing to certain
  310.                       privilege levels. This option is also available from
  311.                       the command-line.  By default a file called USER.SAV
  312.                       will be used to place any deleted records into.  Also,
  313.                       the names of any deleted users will be placed into a
  314.                       file with the same basename as the save file, but with
  315.                       a ".DEL" extension. (i.e. USER.DEL)  You may restore
  316.                       the records by using the Import option.  If the
  317.                       database you're zapping is the same one pointed to
  318.                       by the PRM file, then the CWF's will be updated
  319.                       accordingly.  The CWF's of user's that are removed
  320.                       from the database will be renamed from #.BBS to #.OLD.
  321.  
  322.  
  323.   +/-)  Change Record Number:
  324.                      You can use either the plus and minus keys to
  325.                       increment/decrement the record number respectively,
  326.                       or use the right and left arrow keys to do the same
  327.                       thing.  Home and End will place you at the first and
  328.                       last records respectively.
  329.  
  330.   ESC)  Quit:   If you have made any changes to the current record without
  331.                  going to another record, you will be asked if you want to
  332.                  save the user information before exiting.  ** Anytime you
  333.                  change to another record, the current record is saved to
  334.                  disk if it has been modified. **
  335.  
  336. SPACE)  {SpaceBar} ScrnSect:
  337.                 Changes the current Screen Section.  The active ScrnSect is
  338.                  displayed at the top of the screen.  The Screen Sections are
  339.                  at the left side of each box border.  A ScrnSect must be
  340.                  active in order for its commands to be active.  Also when a
  341.                  ScrnSect is active, the number next to the active box will
  342.                  BLINK.
  343.                 The ScrnSect can also be changed with the up and down arrow
  344.                  keys to decrement/increment the ScrnSect number respectively.
  345.  
  346.     0)  Continue Search:
  347.                 Only valid/displayed if you have already specified a search
  348.                  key.  This allows you to continue searching on the previously
  349.                  entered search key starting at the next record.
  350.  
  351.    F9)  DOS Shell:
  352.                 Exactly what it says, and the User Editor IS swapped out
  353.                  of memory.
  354.  
  355.   INS)  Add New User:
  356.                 Same as using the *Utils/Adduser option.
  357.  
  358.   DEL)  Toggle User Status:
  359.                 An easy method of changing a user's status.
  360.                 Status is one of the following: Normal, ReUse, Purge
  361.  
  362. CTRL-H) Toggle Hidden Passwords:
  363.                 Toggles minimum Privilege to not display passwords for.
  364.                 Either Normal or Sysop access.  Default is Normal.
  365.  
  366. CTRL-I) Update Index:
  367.                 Forces the NDX file to be updated (via index program).
  368.  
  369. CTRL-N or CTRL-RIGHT) Next Tagged Record:
  370.                 For easy viewing of Tagged records.
  371.  
  372. CTRL-P or CTRL-LEFT) Previous Tagged Record:
  373.                 For easy viewing of Tagged records.
  374.  
  375. CTRL-R) Re-Load Record:
  376.                 Reads in the current user from disk.  Use in case you make
  377.                 some changes to the record and decide you really didn't
  378.                 want to do that. :-)
  379.  
  380. CTRL-S) Save Options:
  381.                 Saves the current options as the defaults to the INI file.
  382.  
  383. CTRL-U) Untag All:
  384.                 Clears the tags on all records.
  385.  
  386. CTRL-V) Viewer:
  387.                 Allows easy viewing of files that can be displayed to each
  388.                 user.  You can select any of the 5 Special Announcement
  389.                 (SpAnn) files, the Special OEC (SpOEC) file for that user,
  390.                 or the Custom Welcome File (CWF).  If the file you want to
  391.                 display doesn't exist then nothing is displayed.  The files
  392.                 are displayed via the DOS TYPE command, so no AVATAR
  393.                 translation or formatting is done.
  394.  
  395. CTRL-X) Toggle IBM Graphics:
  396.                 Toggles IBM Graphics translation ON/OFF.
  397.  
  398.  
  399. ***=>   If you have the inactivity timer set, SFUE17 will save the current
  400. record and update the index *if necessary* (and nobody is online) before
  401. exiting.
  402.  
  403.  
  404.  
  405. **==--==**
  406.  
  407. STRING EDITING:
  408. --------------
  409.     When using either BIOS or DIRECT screen writes you now have full
  410. editing capabilities when entering in strings.  Valid keys are:
  411.  
  412. Left/Right Arrow Keys:  Moves cursor one character left/right within string.
  413.              HOME/END:  Places the cursor at the beginning/end of the
  414.                         string being edited.
  415.                INSert:  Toggles Insert mode ON/OFF.  When ON the cursor
  416.                         will change to more of a block cursor, and when
  417.                         not in insert mode the cursor will appear normal.
  418.                DELete:  Deletes the character under the cursor.
  419.                    F6:  Deletes everything from the cursor to the end of
  420.                         the string.
  421.  
  422.     When using DOS mode you can clear the string by pressing the SPACEBAR
  423. for the first character and then pressing ENTER.
  424.  
  425.  
  426.  
  427.  
  428.  
  429. **==--==**
  430.  
  431.     I hope this is enough of a program description to get you familiar with
  432. the program.  For Opus v1.7+ the ScrnSect is not the same as the "Section" in
  433. Opus.
  434.     Currently this Editor doesn't contain an internal index updating function.
  435. You will need to use the USERNDX program that is distributed with Opus v1.7+.
  436. The Editor will call USERNDX when exiting whenever it thinks the Index needs
  437. to be updated.  USERNDX will only be called when you have made changes inside
  438. the Editor that might change the NDX file.  USERNDX should either be located
  439. in the PATH, or in the same directory as your user database, or in your Opus
  440. Home Directory.  Once all the drive/path information has been found once, it's
  441. stored in an INI file so SFUE17 can always find the needed files (unless
  442. they're moved). ;-)
  443.  
  444. ------------------------------------------------------
  445.  
  446. ***********************
  447. * Report Information: *
  448. ***********************
  449.  
  450. **
  451. Report Detail Info (80-column output):
  452. ------------------------------------------------------
  453. Detail Group 1:
  454.  A = User Record Number                 (Width =  5)
  455.  B = User Name (Real)                   (Width = 26)
  456.  C = Phone Number                       (Width = 15)
  457.  D = City, State                        (Width = 25)
  458. --
  459. Detail Group 2:
  460.  E = Street Address                     (Width = 26)
  461.  F = Answer to SysOp Question           (Width = 43)
  462. --
  463. Detail Group 3:
  464.  G = SysOp Comment                      (Width = 44)
  465.  H = Birthdate                          (Width =  9)
  466.  I = Access Privilege                   (Width =  9)
  467.  J = Language Number                    (Width =  1)
  468. --
  469. Detail Group 4:
  470.  K = Keys                               (Width = 32)
  471.  L = Download:Upload Ratio              (Width =  9)
  472.  M = Days Since Last Call               (Width =  4)
  473.  N = Password (optional)                (Width = 15)
  474.  
  475. ------------------------------------------------------
  476.  
  477. **
  478. Report Detail Info (132-column output):
  479. ------------------------------------------------------
  480. Detail Group 1:
  481.  A = User Record Number                 (Width =  5)
  482.  B = User Name (Real)                   (Width = 26)
  483.  C = Phone Number                       (Width = 15)
  484.  D = City, State                        (Width = 25)
  485.  E = Street Address                     (Width = 25)
  486.  F = Alias                              (Width = 20)
  487. --
  488. Detail Group 2:
  489.  G = Answer to SysOp Question           (Width = 44)
  490.  H = SysOp Comment                      (Width = 45)
  491.  I = Birthdate                          (Width =  9)
  492.  J = Password (optional)                (Width = 15)
  493. --
  494. Detail Group 3:
  495.  K = Access Privilege                   (Width =  9)
  496.  L = Keys                               (Width = 32)
  497.  M = Download:Upload Ratio              (Width =  9)
  498.  N = Days Since Last Call               (Width =  4)
  499.  O = First Call to System               (Width = 11)
  500.  P = Language                           (Width = 10)
  501.  
  502. ------------------------------------------------------
  503.  
  504. Errorlevels:
  505.   8: User Currently Online
  506.   7: Writing INI Structure
  507.   6: Creating INI File
  508.   5: Error Opening User Database
  509.   4: User Database NOT Found
  510.   3: Writing Record
  511.   2: Reading Record
  512.   1: Unsuccessful (General Error)
  513.  
  514.  
  515. ------------------------------------------------------
  516.  
  517. Credits:
  518. ~~~~~~~
  519.         This product uses the SPAWNO routines by Ralf Brown to minimize
  520. memory usage while shelling to DOS and running other programs.
  521.  
  522.         Sort routine written by R. Gardner and supplied within Bob Stout's
  523. SNIPPETS file.
  524.  
  525.         PKLITE Copyright PKWARE, Inc.
  526.  
  527.  
  528.  
  529.  
  530. -={**}=-
  531.     Thank You for taking your time to read this, and use my program.
  532. If you have any comments or suggestions, I'd like to hear from you.
  533. Please contact me if you have any problems with the program, or you
  534. would like to see any added features.  You may contact me (via NetMail)
  535. at the phone number (or FidoNet Address) listed below.  I also read the
  536. NEWOPUS and MEADOW Echo's.  The latest version of my software is also
  537. available on my BBS.  It may be requested with the magic name of "SFUE17"
  538. for the Opus v1.7x/v1.8x version.
  539.  
  540.                                 --=={ Kevin Silcox ------
  541.                                 SysOp of:
  542.                                     StormFront
  543.                                     in Orangevale, California
  544.                                     (916) 988-0407
  545.                                     FidoNet (1:203/407.0)
  546.                                     CalNet (49:916/407.0)
  547.  
  548.                                 BBS Hours:
  549.                                     24 hours a day,
  550.                                excluding National Mail Hour:
  551.                                  1:00 a.m to 2:00 a.m PST
  552.  
  553.     Special Thanks to my Beta Test Team, the Opus Utility Team, and the
  554. many SysOps that use my program and that have made feature requests and
  555. notified me of bugs so that I'm able to make SFUE17 a reliable piece of
  556. software.
  557.  
  558.