• src/sbbs3/js_user.c

    From Rob Swindell@1:103/705 to Git commit to sbbs/master on Sat Oct 3 12:55:26 2020
    https://gitlab.synchro.net/sbbs/sbbs/-/commit/7faa8a64b0ff3506e3f1fc5f
    Modified Files:
    src/sbbs3/js_user.c
    Log Message:
    Add user properties: birthyear, birthmonth, and birthdayThese allow the easy reading or writing of these sub-field values of theuser.birthdate property. When migrating from the legacy formats (e.g. MM/DD/YYor DD/MM/YY), it's required to write all 3 properties to get a correctbirthdate/age. Otherwise, "13/31/69" could become "19691/69" (for example)which isn't going to parse correctly.
    --- SBBSecho 3.11-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to sbbs/master on Sat Oct 3 16:30:58 2020
    https://gitlab.synchro.net/sbbs/sbbs/-/commit/fe2b242524ada9e70c4d1410
    Modified Files:
    src/sbbs3/js_user.c
    Log Message:
    Allow negative user property values (e.g. age).
    --- SBBSecho 3.11-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Wed May 18 15:32:02 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/65e938974bfeac3448008bfc
    Modified Files:
    src/sbbs3/js_user.c
    Log Message:
    Fix User.number increment beyond lastuser issueWhen the 'number' property of an instance of User was incremented beyond the last user, the call to fgetuserdat() on subsequent property 'get' operation would fail and zero-out the user structure (including the user number). This resulted in an infinite loop in load/birthdays.js where the user number would go from lastuser to 1 in one operation (u.number++).Reported by DesotoFireflite (VALHALLA)
    --- SBBSecho 3.15-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Tue May 31 18:28:27 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/e731ac184d1bb5613cf6fc5f
    Modified Files:
    src/sbbs3/js_user.c
    Log Message:
    Don't clobber an open user.dat file descriptor in js_CreateUserObject()Likely fix for the user.dat open file descriptor leak:If js_CreateUserObject(cx,parent,cfg,"name",...) is called multiple times(e.g. before login and after login), the successive calls will reuse thepreviously allocated JS object and allocated private data memory. However, theprivate data memory (which includes the descriptor of an open user.dat file,if it has been opened), was always zeroed, even if it was being reused. Thiswould leak open file descriptor.So any (pre)login scripts or web scripts that use the "user" object (whichis all zeroed-out before login) and then allows a user to subsequently login,would leak a file descriptor.
    --- SBBSecho 3.15-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Sat Jun 11 14:30:02 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/a87cebdb79abc7bdbd163df9
    Modified Files:
    src/sbbs3/js_user.c
    Log Message:
    Add User close() methodThis can be used to force a close of the user.dat file, if open. Rather thanwaiting for an out of scope User to get garbage-collected, this method couldbe used to force a close of the user.dat file, if it's open.
    --- SBBSecho 3.15-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell (on Windows 11)@1:103/705 to Git commit to main/sbbs/master on Sun Jun 9 18:44:32 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/3a029fa8fae8ec897ecb0d43
    Modified Files:
    src/sbbs3/js_user.c
    Log Message:
    Make legacy/alias properties non-enumerable: computer, modem

    I noticed these redundant properties were being logged for every logon in logon.jsonl. We don't need these properties separately enumerable, and really they shouldn't be used anyway.

    computer is an alias of host_name
    modem is an alias of connection
    --- SBBSecho 3.20-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell (on Debian Linux)@1:103/705 to Git commit to main/sbbs/master on Tue Oct 15 00:45:21 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/c780c203a091fa500b91fe01
    Modified Files:
    src/sbbs3/js_user.c
    Log Message:
    New user properties: batch_upload_list and batch_download_list

    For exposing the list path/file for a user's batch up/download lists
    --- SBBSecho 3.20-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell (on Debian Linux)@1:103/705 to Git commit to main/sbbs/master on Mon Jan 20 21:14:02 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/3330268bef9ee2184705e425
    Modified Files:
    src/sbbs3/js_user.c
    Log Message:
    Add User.security.deletion_date property

    corresponding wth new user DELDATE field
    --- SBBSecho 3.23-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell (on Windows 11)@1:103/705 to Git commit to main/sbbs/master on Tue Jun 17 20:17:38 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/24226f351c85dabf3bc71713
    Modified Files:
    src/sbbs3/js_user.c
    Log Message:
    New User class methods: can_access_sub() and can_access_dir()

    Much easier and more accurate way to determine (via JS) if a specific user
    has a particular kind of access to a message sub-board or a file directory. This is accurate because it uses the 'userdat' functions under the hood, which check much more than just a single access requirement string against the user.

    Usage:
    bool can_access_sub(string sub_code or number sub_num
    [,'read', 'post', or 'operator'])
    bool can_access_dir(string dir_code or number dir_num
    [,'download', 'upload', or 'operator'])

    If no access string (second argument) is specified, then just generic "access" (e.g. for listing areas) is checked.

    The existing msg_area.sub[].can_access, can_read, can_post (and similar for file_area.dir[]) are still useful, but only for the current 'user'. If you
    want to check a different user's access to a sub-board or file directory, you really need to use these new User class methods.
    --- SBBSecho 3.28-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)