User Profile Editor for Color64 8.X

Current versions of Color 64 only allow users to adjust minor settings of their profile, but √BBS.INIT has a routine that updates a user’s record when they change their password in its entirety. When that update occurs, the routine stores all values to the user’s record as it updates the password. We’re going to capitalize on that here and give the user the ability to update their other personal information like user’s full name, phone #, and location.

The overlay that I’ve attached will do the information gathering is √BBS.PROFILE and after it gets the information, it will call a modified change password routine in √BBS.INIT. It will use the Spare Command #2, but you can modify to your liking, of course.

I highly recommend backing up your √PASSWORDS file prior to implementing this just in case of any user error!!

Step 1: place the attached √BBS.PROFILE module in your systems directory.
Step 2: Update all overlays for the new command:

  • √BBS.OVL, √BBS.XFER, √BBS.MSGS
  • Update line 13195 at the second goto value (was “92”)

13195 oni-29goto35651,35652,13450,98,100,13465,13478,13475,13480,13425

  • Add new line 35652:

35652 i$=“profile”:goto104

What does it do? If the user enters “2” from any of the main command prompt, the GOTO statement at 13195 will transfer to line 35652, identify “Profile” as the desired module, which then line 104 converts it to “√BBS.PROFILE” and loads the module. After the module has received the updated information from the user - and if the user commands the module to save changes - it invokes a new jump point (OV=14) and loads the √BBS.INIT module.

Step 3: Update √BBS.INIT and the Password Change routine

  • First, we need to create our new jump point (OV=14) and flag that this is not actually a “password change”. This will be at line #5. At this line, add to the end “,79”. If you count the goto statements there with the addition included, it is the 14th spot (that’s why we do OV=14).

5 onovgoto40,50,60,30,9999,70,75,80,78,65,35,85,33,79

  • Next we need to add line 79 that we’re jumping to from line 5.

79 t2=1:gosub13735:ov=3:goto91

  • Next, modify routine which starts at line 13735 to jump over the password change prompts. The actual change occurs at line 13760.
  • Move line 13760 “Your password has been changed” line to line 13761
  • Take the “RETURN” part of the new line 13761 and put it on its own line - 13762

13762 RETURN

  • Add new line 13760:

13760 ift2=1then#“Profile Updated”:t2=.:goto13762
13761 %“Your password has been changed.”
13762 return

  • Next we will modify the portion of the heart of the password change routine which begins at line 18320. Add to the end of line 18320 a check for our flag “T2” to change the flow of our routine.

18320 t=j:close8:f$=“√password msg”:gosub205:j=t:ift2=1thengosub18500:goto18330

What does it do? After √BBS.INIT loads and with OV=14, line 5 will send us to line 79. Line 79 sets our flag for flow-changes (T2) and jumps to password change routine (lines13735 which starts up line 18500). The code at line 18500 opens the password file. Control is then returned back to line 13747 where we jump to routine at line 940 (prepares REL file) and to line 18320. At line 13820, we “jump over” password change prompts by our “goto18330” statement, and this is where the user’s record information is actually updated (lines 18330-18420). Our return statement at unmodified line 18420 puts us back at line 13762 where we print “Profile Updated”, clear our T2 flag, return back to line 79 where we head back to the command prompt in our overlay (OV=3:goto91).

Step 4: Verify functionality. Make a mock new user or edit a record you are OK with modifying and change one of the areas of the user profile; save changes, then perform a logoff. Go into Records Management (F1, F6) and verify these changes occurred and no other records were affected. Ensure records that are subsequent to the change are still present. (in other words, if user record #37 was modified, make sure afterwards that records 38 and up are still present).

Step 5: Once you are satisfied that the command is working fine, update user permissions in your +SETUP of the BBS (Spare Command 2) for users to be able to use it. I have mine set for User Level 1 - so anyone can update their profile.

Note: On my system, “Email Address” is used in place of “Street Address” (variable a1$).

ºbbs.profile.prg (3.8 KB)

I like this concept and think you should take it further if you can. Changing out the old values of phone number, street address, etc. with modern sensibilities is the way to go.