home *** CD-ROM | disk | FTP | other *** search
-
- StormFront User Editor for the Opus CBCS
- Copyright 1992 by Kevin Silcox
-
- December 23, 1992
-
- Disclaimer
- ----------
- This software is available "AS IS". It is not guaranteed to work at
- all. If it trashes your system or ruins your life, you have been warned.
- I am not responsible for any damages incurred from the use or misuse of
- this software. There is also no fee to use this software to keep with
- the spirit of Opus.
-
- You will have to get by without any real documentation until I, or
- someone else writes some for this program. If you know Opus and how it
- works, then this program should be pretty much self-explanatory as far
- as what the actual changes to the user database do. So for now, there's
- only a brief description of how to use the actual functions of the program.
- Even though SFUE17 may not have the most user-friendly interface, I think
- that its flexibility is worth the struggle you *may* go through when you
- first start to use it. Enjoy!
-
- WARNING: If you're running Opus in a multi-tasking environment then make
- sure that you DO NOT Sort or Zap the database when there is a potential
- for Opus to need to use the user database! (i.e. If a user calls and
- tries to login.)
-
-
- --=={*-------------------------------------------------*}==--
- This version: 1.11 ---> For Opus v1.7x/v1.8x
-
- Requires approximately 150K of Available RAM. Requires
- more if using the Sort option (based on number of records
- in your database --> about 28 bytes for each record, up to
- a maximum of about 2300 records, plus 8 bytes per CWF). If
- anyone exceeds 2300 records then please let me know. The
- Verify needs 24 bytes per record, and the Tag array needs
- 1 byte per record. The maximum memory requirement should
- be about 210K.
-
- **> I recommend you use an EXE compressor such as PKlite in
- order to reduce the program size (by about 53% with
- PKLite v1.15).
-
- This program is for maintaining the user database used with
- Opus. It is capable of adding users, marking them to be ReUsed,
- Purged, and even Removing users marked to be Purged (Zap), along
- with many other nifty features.
-
-
-
- -*-
-
- The program accepts a command-line argument for local and non-
- local use. Entering an argument other than those arguments listed
- will display a brief help screen. You may either use '-' or '/'
- characters for each argument. The arguments are as follows:
-
- /VM force Mono mode /VC force Color mode /VA AutoDetect Video
- /VD force DOS Writes /VB force BIOS Writes /VX Translate IBM Graphics
- /Z[E][days] Zap database /P{priv}[+/-] /Ud:\\path\\[filename]
- /O[{1st}[{order}][,{2nd}[{order}]][,start[,end]]] Sort database
- /I Install/Reconfigure /E[days] Expiration Reset
-
- *
- The /VM and /VC options are only to force the memory address for the
- direct-screen writes if the program doesn't recognize the correct video
- mode. If no arguments are entered, the program will AutoDetect which
- video mode to use for the direct-screen writes (or whatever mode has
- been selected as the default). If you use the DOS option then I/O may
- be redirected.
-
- *
- The /U allows you to specify the name of the User Database file
- that you want to use instead of the default USER.DAT. If you specify
- just the full path without a filename, USER.DAT will be assumed (you
- must have a "\" after the path though).
-
- *
- You may either use the /VX (Translate) option from the command-line,
- or use CTRL-X to toggle IBM Graphics translation ON and OFF from the
- user edit screen. NOTE: When translation is turned ON, the IBM Graphics
- characters in the Report will be translated also.
-
- *
- There are several ways of executing a database Zap. If you just
- specify /Z then only records that have a Status of 'Purge' will be
- removed. If you specify a number (/Z90) then any user that hasn't called
- in that many days will be removed. If you specify /ZE then SFUE17 will
- check the expiration fields in each record to decide whether a user
- should be removed or demoted (based on the Date or Time fields and Action
- field). You can localize the processing based on privilege level if you
- use the /P option. See the Zap option below for more information.
-
- i.e. SFUE17 /ZE /PN-
- The above selection would check the expiration fields, check the user
- status field, and *only* remove the user if their privilege level is
- Normal or below.
-
-
- *
- The /P is a Privilege level selector that can be used with either
- the /E or /Z options to localize processing to specific privilege
- levels (or level). If you use *both* the /Z and /E options they will
- both use the same Privilege level range, but the Expiration fields
- will be updated before the database gets "Zapped".
-
-
- *
- The Sort option may look complex, but it works the same as if you
- were to enter the options from inside the program. If you just specify
- /O then all the defaults will be used. {1st} and {2nd} are the primary
- and secondary sort keys respectively. For the Name and Alias you can
- specify a second letter for the first or last name (last name is the
- default for both). {order} is either an 'A' or 'D' (ascending or
- descending). The start and end are the stsrt and end records
- respectively. Here are some examples:
-
- SFUE17 /OPD,NLD,3,0
- -- Sort records 3 to end by descending priv, descending last
- name
- SFUE17 /O,A,3
- -- Sort records 3 to end by descending priv, descending last
- alias name
- SFUE17 /ONFA
- -- Sort records 2 to end by ascending first name
- SFUE17 /O,,3
- -- Sort records 3 to end using the default sort order
-
- Hope that's enough to give you an idea on how to sort from the command-
- line. Once you're familiar with the keys you press from inside the
- program, and when you get used to the format it gets pretty easy to use.
- Basically, each key you press inside the program will go onto the
- command-line, and wherever you just press <cr> to accept a default
- you can just leave that key out.
-
- *
- Use /I to change the default parameters. NOTE: Not all parameters
- saved in the INI file get priority. For example, if the OPUS environment
- variable is pointing to a PRM file, it will be used instead of the name
- stored in the INI file. The INI file is mainly used as a backup method
- to make locating the files it needs more reliable and save other important
- information that the program uses.
-
-
- *
- By using the /E option you can automatically reset each users'
- expiration date based on their last call. This is to be used in conjunction
- with the Expiration Controls within Opus. If you don't specify the
- day count on the command-line, SFUE17 will extract and use the value
- in the PRM file. This feature makes it nice to make sure each user
- will be removed if their account is inactive over a certain number of
- days. This option is only available from the command-line.
-
-
- *
-
-
- *--===--*
-
-
- Whenever there has been a modification to the current user record,
- SFUE17 will place an asterisk '*' at the top right-hand side of the
- screen. There are two things that SFUE17 *may* change automatically.
- If the number of times a user has called the system is zero (0), it will
- be changed to one (1). Also, if the user has QkMenu (Return to Last
- Menu) turned on, SFUE17 will try to make sure the menu is valid to prevent
- Opus from choking. :-)
-
- Also, if the current users' account is going to "Expire" then their
- status field will have a blinking red asterisk (*'s) on both sides of
- the Status field.
-
- If a record has been Tagged, then a 'T' will be displayed on the top
- line just before the User Status. Records will only remain tagged for
- the current session.
-
- There are now two indicators in ScrnSect 1 (as of v1.08). The one
- that you probably won't see is the '[COPY]' indicator. This indicates
- that you are NOT currently editing the database that Opus uses. If you
- are editing the actual database that Opus uses, then you won't see the
- '[COPY]'. The other indicator is '*CWF*' which indicates that the user
- being displayed has a CWF file in the Opus root directory (#.?BS). This
- is displayed whether you're editing a copy of the database or the real one.
-
- When using the Inactivity timer, the program will beep at 5 second
- intervals starting 20 seconds before exiting.
-
-
-
-
- **==--==**
-
- ** NOTE: SFUE17 will always try to show the users' Real Name in
- the Name field and their Alias in the Alias field, based
- on the information in the PRM file.
-
- The help screen inside the program takes priority over this file.
- In the lower right-hand corner of the User Screen are the most used
- commands that are available in all ScreenSections. Below is a brief
- description of what they do:
-
- ?) Help: Displays a help screen.
-
- R) Record Number: This allows you to go to a specific record number
- within the database.
-
- @) Tag/Untag: This will toggle whether a user record has been marked
- as 'Tagged'.
-
- *) Utilities: This is for maintaining the database. Options are:
- Adduser: If you need to add a user, this is what you'll use.
- It has gives you the option of just adding a record
- at the end of the database, or searching for a record
- marked with the "Reuse" status. If you choose to
- search for a record to Reuse, and there is a record
- marked with the Reuse status, then that record will be
- cleared of its information and you may start entering
- the new user information in that record.
-
- rEstore: This is if you want to add the users in USER.SAV back into
- the database. If successful, USER.SAV will be deleted
- and a new USER.SAV will be created with a size of zero
- bytes. This will allow you to Undelete the old savefile
- if necessary.
-
- Find : This allows you to search certain fields for a string.
- It's useful for finding a specific user quickly, among
- other things. (Previously called Search)
-
- Global : Allows you to make certain changes to specific (or all)
- users. You may specify to set only a certain privilege
- level, or the default is all records (record #1 will
- NOT be touched). There are also sub-levels that I
- don't feel like going into.
- -=***=-
- I feel that the options for changing Keys and Sections
- may cause some confusion. With those two options there
- are 4 sub-options [Exact/Set/Toggle/Unselect]:
-
- Exact: Set each user to exactly the keys you
- specify. If you only select the 'A' key,
- that's the only key the users' will have
- no matter what they started out with.
- Set: All keys you specify will be turned ON for
- each user.
- Toggle: Exactly what it says... If you select the 'A'
- key each users' keys will be set to the
- opposite it started out as.
- Unselect: The opposite of Set. It will make sure each
- key you select is turned OFF.
-
- sOrt : This will sort your database based on the keys you
- select, and whether you select Ascending or Descending
- order for each key. You may select up to two keys to
- sort by. If the database you're sorting is the same
- one pointed to by the PRM file, then the CWF's will
- be updated accordingly. If there is a problem renaming
- a CWF, it will be most probably be renamed with a .BAK
- extension.
-
- Report : This generates a report for all users and sends it either
- to the Screen, Printer, or a File. You can Pause the
- output by pressing 'P', or have an option to Abort by
- pressing 'ESC'. You are asked several questions about
- how the report should be, but I don't have the time to
- go into detail explaining it... However, I will state
- that SFUE17 will NOT send control codes to the printer,
- but only format the report appropriately. Setting your
- printer into the proper font size and LPI setting is
- up to you. When sending to the printer or a file, there
- will be a progress indicator (percent complete).
-
- User Status: This allows you to modify the status of a user's
- record. The Status can be one of the following:
- Normal: This is a normal record.
- Reuse : As new users are added, they will be
- placed in records marked with this
- status instead of being added to the
- end of the database.
- Purge : This means that if you use the Zap
- function, the record will be removed
- from the database. Also used by OMAN.
- Update ID : This will update the caller ID number
- but should only be used if the
- caller_ID is all zero's or in conflict
- with another record.
-
- Verify : You should use this to occassionally check for problem
- records. This will scan all the records and make sure
- the names and ID's are valid. Any records that have
- zero ID's, matching ID's, or matching Names will be
- automatically tagged so that you can use CTRL-N/CTRL-P
- (Next/Previous tagged record, respectively) to easily
- look through the marked records. The field that is
- in conflict with another field will have a visible
- indicator. If the name field is marked, then you need
- to look for another user with the same name and take
- whatever action you feel will fix the dupe. The same
- goes for the ID field.
-
- sWap : This allows you to swap any two records with each other.
-
- Zap : This removes any records marked with the Purge status.
- Also you can specify the number of days a user can go
- without calling the system before he/she is removed
- from the database. In addition you can check the
- expiration fields and localize processing to certain
- privilege levels. This option is also available from
- the command-line. By default a file called USER.SAV
- will be used to place any deleted records into. Also,
- the names of any deleted users will be placed into a
- file with the same basename as the save file, but with
- a ".DEL" extension. (i.e. USER.DEL) You may restore
- the records by using the Import option. If the
- database you're zapping is the same one pointed to
- by the PRM file, then the CWF's will be updated
- accordingly. The CWF's of user's that are removed
- from the database will be renamed from #.BBS to #.OLD.
-
-
- +/-) Change Record Number:
- You can use either the plus and minus keys to
- increment/decrement the record number respectively,
- or use the right and left arrow keys to do the same
- thing. Home and End will place you at the first and
- last records respectively.
-
- ESC) Quit: If you have made any changes to the current record without
- going to another record, you will be asked if you want to
- save the user information before exiting. ** Anytime you
- change to another record, the current record is saved to
- disk if it has been modified. **
-
- SPACE) {SpaceBar} ScrnSect:
- Changes the current Screen Section. The active ScrnSect is
- displayed at the top of the screen. The Screen Sections are
- at the left side of each box border. A ScrnSect must be
- active in order for its commands to be active. Also when a
- ScrnSect is active, the number next to the active box will
- BLINK.
- The ScrnSect can also be changed with the up and down arrow
- keys to decrement/increment the ScrnSect number respectively.
-
- 0) Continue Search:
- Only valid/displayed if you have already specified a search
- key. This allows you to continue searching on the previously
- entered search key starting at the next record.
-
- F9) DOS Shell:
- Exactly what it says, and the User Editor IS swapped out
- of memory.
-
- INS) Add New User:
- Same as using the *Utils/Adduser option.
-
- DEL) Toggle User Status:
- An easy method of changing a user's status.
- Status is one of the following: Normal, ReUse, Purge
-
- CTRL-H) Toggle Hidden Passwords:
- Toggles minimum Privilege to not display passwords for.
- Either Normal or Sysop access. Default is Normal.
-
- CTRL-I) Update Index:
- Forces the NDX file to be updated (via index program).
-
- CTRL-N or CTRL-RIGHT) Next Tagged Record:
- For easy viewing of Tagged records.
-
- CTRL-P or CTRL-LEFT) Previous Tagged Record:
- For easy viewing of Tagged records.
-
- CTRL-R) Re-Load Record:
- Reads in the current user from disk. Use in case you make
- some changes to the record and decide you really didn't
- want to do that. :-)
-
- CTRL-S) Save Options:
- Saves the current options as the defaults to the INI file.
-
- CTRL-U) Untag All:
- Clears the tags on all records.
-
- CTRL-V) Viewer:
- Allows easy viewing of files that can be displayed to each
- user. You can select any of the 5 Special Announcement
- (SpAnn) files, the Special OEC (SpOEC) file for that user,
- or the Custom Welcome File (CWF). If the file you want to
- display doesn't exist then nothing is displayed. The files
- are displayed via the DOS TYPE command, so no AVATAR
- translation or formatting is done.
-
- CTRL-X) Toggle IBM Graphics:
- Toggles IBM Graphics translation ON/OFF.
-
-
- ***=> If you have the inactivity timer set, SFUE17 will save the current
- record and update the index *if necessary* (and nobody is online) before
- exiting.
-
-
-
- **==--==**
-
- STRING EDITING:
- --------------
- When using either BIOS or DIRECT screen writes you now have full
- editing capabilities when entering in strings. Valid keys are:
-
- Left/Right Arrow Keys: Moves cursor one character left/right within string.
- HOME/END: Places the cursor at the beginning/end of the
- string being edited.
- INSert: Toggles Insert mode ON/OFF. When ON the cursor
- will change to more of a block cursor, and when
- not in insert mode the cursor will appear normal.
- DELete: Deletes the character under the cursor.
- F6: Deletes everything from the cursor to the end of
- the string.
-
- When using DOS mode you can clear the string by pressing the SPACEBAR
- for the first character and then pressing ENTER.
-
-
-
-
-
- **==--==**
-
- I hope this is enough of a program description to get you familiar with
- the program. For Opus v1.7+ the ScrnSect is not the same as the "Section" in
- Opus.
- Currently this Editor doesn't contain an internal index updating function.
- You will need to use the USERNDX program that is distributed with Opus v1.7+.
- The Editor will call USERNDX when exiting whenever it thinks the Index needs
- to be updated. USERNDX will only be called when you have made changes inside
- the Editor that might change the NDX file. USERNDX should either be located
- in the PATH, or in the same directory as your user database, or in your Opus
- Home Directory. Once all the drive/path information has been found once, it's
- stored in an INI file so SFUE17 can always find the needed files (unless
- they're moved). ;-)
-
- ------------------------------------------------------
-
- ***********************
- * Report Information: *
- ***********************
-
- **
- Report Detail Info (80-column output):
- ------------------------------------------------------
- Detail Group 1:
- A = User Record Number (Width = 5)
- B = User Name (Real) (Width = 26)
- C = Phone Number (Width = 15)
- D = City, State (Width = 25)
- --
- Detail Group 2:
- E = Street Address (Width = 26)
- F = Answer to SysOp Question (Width = 43)
- --
- Detail Group 3:
- G = SysOp Comment (Width = 44)
- H = Birthdate (Width = 9)
- I = Access Privilege (Width = 9)
- J = Language Number (Width = 1)
- --
- Detail Group 4:
- K = Keys (Width = 32)
- L = Download:Upload Ratio (Width = 9)
- M = Days Since Last Call (Width = 4)
- N = Password (optional) (Width = 15)
-
- ------------------------------------------------------
-
- **
- Report Detail Info (132-column output):
- ------------------------------------------------------
- Detail Group 1:
- A = User Record Number (Width = 5)
- B = User Name (Real) (Width = 26)
- C = Phone Number (Width = 15)
- D = City, State (Width = 25)
- E = Street Address (Width = 25)
- F = Alias (Width = 20)
- --
- Detail Group 2:
- G = Answer to SysOp Question (Width = 44)
- H = SysOp Comment (Width = 45)
- I = Birthdate (Width = 9)
- J = Password (optional) (Width = 15)
- --
- Detail Group 3:
- K = Access Privilege (Width = 9)
- L = Keys (Width = 32)
- M = Download:Upload Ratio (Width = 9)
- N = Days Since Last Call (Width = 4)
- O = First Call to System (Width = 11)
- P = Language (Width = 10)
-
- ------------------------------------------------------
-
- Errorlevels:
- 8: User Currently Online
- 7: Writing INI Structure
- 6: Creating INI File
- 5: Error Opening User Database
- 4: User Database NOT Found
- 3: Writing Record
- 2: Reading Record
- 1: Unsuccessful (General Error)
-
-
- ------------------------------------------------------
-
- Credits:
- ~~~~~~~
- This product uses the SPAWNO routines by Ralf Brown to minimize
- memory usage while shelling to DOS and running other programs.
-
- Sort routine written by R. Gardner and supplied within Bob Stout's
- SNIPPETS file.
-
- PKLITE Copyright PKWARE, Inc.
-
-
-
-
- -={**}=-
- Thank You for taking your time to read this, and use my program.
- If you have any comments or suggestions, I'd like to hear from you.
- Please contact me if you have any problems with the program, or you
- would like to see any added features. You may contact me (via NetMail)
- at the phone number (or FidoNet Address) listed below. I also read the
- NEWOPUS and MEADOW Echo's. The latest version of my software is also
- available on my BBS. It may be requested with the magic name of "SFUE17"
- for the Opus v1.7x/v1.8x version.
-
- --=={ Kevin Silcox ------
- SysOp of:
- StormFront
- in Orangevale, California
- (916) 988-0407
- FidoNet (1:203/407.0)
- CalNet (49:916/407.0)
-
- BBS Hours:
- 24 hours a day,
- excluding National Mail Hour:
- 1:00 a.m to 2:00 a.m PST
-
- Special Thanks to my Beta Test Team, the Opus Utility Team, and the
- many SysOps that use my program and that have made feature requests and
- notified me of bugs so that I'm able to make SFUE17 a reliable piece of
- software.
-
-