Skip to content

Adding fileWrite to nodebb code

Solved Configure
16 2 5.0k 1
  • wrote on last edited by Panda
    #1

    I have a test nodebb (no live users) and I want to see what is / isnt possible, in regard to owners accessing passwords.
    In src/password.js I added
    const fs=require(‘fs’)
    and a line to write password to a txt file. It didnt even open a file (even when just writing a text string in simpler test … see screenshot)
    I also added the same to src/user/password.js as I assumed one of these files will be accessed when someone logs in.
    So why was no pasfi.txt file ever created?
    Disclamer, I would not obviously do this on a live forum, but Im curious
    Screenshot_20221010-141223_Termius~2.jpg

  • I have a test nodebb (no live users) and I want to see what is / isnt possible, in regard to owners accessing passwords.
    In src/password.js I added
    const fs=require(‘fs’)
    and a line to write password to a txt file. It didnt even open a file (even when just writing a text string in simpler test … see screenshot)
    I also added the same to src/user/password.js as I assumed one of these files will be accessed when someone logs in.
    So why was no pasfi.txt file ever created?
    Disclamer, I would not obviously do this on a live forum, but Im curious
    Screenshot_20221010-141223_Termius~2.jpg

    wrote on last edited by phenomlab
    #2

    @eveh You’d need to recompile the password.js file for any changes to be picked up. This typically won’t work unless you use ./nodebb build && ./nodebb start. Even then, you may still require a local DEV instance of webpack.

    One other way would be to use one of the existing hooks in NodeBB and create a custom JS function for it.

  • phenomlab phenomlab has marked this topic as solved on
  • @eveh You’d need to recompile the password.js file for any changes to be picked up. This typically won’t work unless you use ./nodebb build && ./nodebb start. Even then, you may still require a local DEV instance of webpack.

    One other way would be to use one of the existing hooks in NodeBB and create a custom JS function for it.

    wrote on last edited by
    #3

    @phenomlab thanks, tried the recompile but still nothing.
    I have it running on a test server (so not locally)
    I tried reading up about hooks but didnt fully understand.
    If I use a non-async file write command would I still need that?
    Can you help me get started with this hook / webpack thing?

  • @phenomlab thanks, tried the recompile but still nothing.
    I have it running on a test server (so not locally)
    I tried reading up about hooks but didnt fully understand.
    If I use a non-async file write command would I still need that?
    Can you help me get started with this hook / webpack thing?

    wrote on last edited by phenomlab
    #4

    @eveh said in Adding fileWrite to nodebb code:

    If I use a non-async file write command would I still need that?

    Yes, because you are changing one of the core files

    @eveh said in Adding fileWrite to nodebb code:

    I tried reading up about hooks but didnt fully understand.

    Did you review this page ?

    https://docs.nodebb.org/development/plugins/hooks/

    @eveh said in Adding fileWrite to nodebb code:

    Can you help me get started with this hook / webpack thing?

    That’s a question probably best asked over on the community forms, as that’s where the devs are located

    https://community.nodebb/org

  • @eveh said in Adding fileWrite to nodebb code:

    If I use a non-async file write command would I still need that?

    Yes, because you are changing one of the core files

    @eveh said in Adding fileWrite to nodebb code:

    I tried reading up about hooks but didnt fully understand.

    Did you review this page ?

    https://docs.nodebb.org/development/plugins/hooks/

    @eveh said in Adding fileWrite to nodebb code:

    Can you help me get started with this hook / webpack thing?

    That’s a question probably best asked over on the community forms, as that’s where the devs are located

    https://community.nodebb/org

    wrote on last edited by
    #5

    @phenomlab thanks
    But something Im still not getting, Ive coded it to write to a file when that hash function is called, so I dont understand why it needs to be triggered by a hook event?
    Its like when it runs that function how can it not write the file, its not something that needs to be triggered by an action, it should just do it when that function runs?

  • @phenomlab thanks
    But something Im still not getting, Ive coded it to write to a file when that hash function is called, so I dont understand why it needs to be triggered by a hook event?
    Its like when it runs that function how can it not write the file, its not something that needs to be triggered by an action, it should just do it when that function runs?

    wrote on last edited by
    #6

    @eveh The hook will trigger, but not if you are modifying password.js directly as it will need to be recompiled. To execute the hook, you should use /admin/appearance/customise#custom-js

  • @eveh The hook will trigger, but not if you are modifying password.js directly as it will need to be recompiled. To execute the hook, you should use /admin/appearance/customise#custom-js

    wrote on last edited by
    #7

    @phenomlab
    Update, the basic file write did work, I found the txt file did have the ‘!o!’ string characters in.
    But the write of password never worked.
    I tried both (file, password…
    And then wondered if password is an object so tried unpacking it as a string, which didnt work)
    See below
    So its the way Im referencing password that might be problem?
    Screenshot_20221010-194743_Termius~2.jpg

  • @phenomlab
    Update, the basic file write did work, I found the txt file did have the ‘!o!’ string characters in.
    But the write of password never worked.
    I tried both (file, password…
    And then wondered if password is an object so tried unpacking it as a string, which didnt work)
    See below
    So its the way Im referencing password that might be problem?
    Screenshot_20221010-194743_Termius~2.jpg

    wrote on last edited by
    #8

    @eveh does the account you are running the under have permissions to the file storage ?

  • @eveh does the account you are running the under have permissions to the file storage ?

    wrote on last edited by
    #9

    @phenomlab yes, sure it does as its doimg the first write to the File,
    Just not where I reference password variable

  • @phenomlab yes, sure it does as its doimg the first write to the File,
    Just not where I reference password variable

    wrote on last edited by
    #10

    @eveh what’s the output if you stop NodeBB and then run it from the console as ./nodebb dev ?

  • @eveh what’s the output if you stop NodeBB and then run it from the console as ./nodebb dev ?

    wrote on last edited by
    #11

    @phenomlab could that make a difference if the first write is working?

  • @phenomlab could that make a difference if the first write is working?

    wrote on last edited by
    #12

    @eveh I don’t expect it to make a difference, no, but it should at least provide some debug logging so you can get an idea of why it fails.

  • @eveh I don’t expect it to make a difference, no, but it should at least provide some debug logging so you can get an idea of why it fails.

    wrote on last edited by
    #13

    @phenomlab i think issue may have been i didnt stop nodebb before i ran it again in dev

  • @phenomlab i think issue may have been i didnt stop nodebb before i ran it again in dev

    wrote on last edited by
    #14

    @eveh now you know why I said stop NodeBB first 😁

  • @eveh now you know why I said stop NodeBB first 😁

    wrote on last edited by phenomlab
    #15

    @phenomlab Narrowed down this issue, its something to do with accessing these variables
    If I write text out like ‘User’ or ‘password’ that goes to the file.
    But when I try these variables or objects (whatever they are) it never works.
    Ive tried writing out User, password, JSON.stringify(password)
    I dont know how to reference what is contained in User or password
    Below screenshot of the plain text that does work!

    Screenshot_20221010-212300_Termius~2.jpg

    I dont know much about these module exports, or what is passed into the parameter

  • @phenomlab Narrowed down this issue, its something to do with accessing these variables
    If I write text out like ‘User’ or ‘password’ that goes to the file.
    But when I try these variables or objects (whatever they are) it never works.
    Ive tried writing out User, password, JSON.stringify(password)
    I dont know how to reference what is contained in User or password
    Below screenshot of the plain text that does work!

    Screenshot_20221010-212300_Termius~2.jpg

    I dont know much about these module exports, or what is passed into the parameter

    wrote on last edited by
    #16

    @eveh this might be a question for the NodeBB Devs themselves. In all honesty, I’m not entirely sure without having to research this myself.


Did this solution help you?
Did you find the suggested solution useful? Support 💗 Sudonix with a coffee ☕
If your organisation needs deeper expertise around infrastructure, security, or technology leadership, learn more about Phenomlab Ltd. Many of the deeper technical guides behind Sudonix are published there.

Related Topics
  • Nodebb to Xenforo

    Solved Configure xenforo nodebb
    3
    0 Votes
    3 Posts
    1k Views
    phenomlab
    @cagatay as @downpw stated, there isn’t a native tool that will do this for you. You’d need to either develop your own or ask the nodebb team to assist which will be a paid exercise.
  • NodeBB v4.0.0

    General nodebb sudonix version 4
    28
    4 Votes
    28 Posts
    8k Views
    phenomlab
    @Panda said in NodeBB v4.0.0: the workings of World aren’t intuitive Its not easy to get World populating when a forum is new to it This is a good point and one I’ve considered also. It’s a little confusing to be honest.
  • Difficult to move posts now, on mobile.

    Bugs nodebb
    16
    1
    5 Votes
    16 Posts
    5k Views
    phenomlab
    @DownPW Yes, it is. It’s set far too low meaning other elements with a higher preference will sit over the top of it.
  • NodeBB: Opening the Composer for replies

    Solved Configure cms composer
    2
    0 Votes
    2 Posts
    989 Views
    phenomlab
    @mventures Quick reply is basically exactly that. However, it’s possible to trigger the full composer as below [image: 82ca1209-31be-4a51-a641-9887b5a238b8-image.png] Failing that, you’ll need to use the reply button in the sticky toolbar [image: 1d230bcb-ff8e-4756-94f7-6e2fb7a94bc4-image.png]
  • NodeBB: Consent page

    Solved Configure nodebb consent
    16
    4 Votes
    16 Posts
    6k Views
    phenomlab
    @DownPW I still do not see any issues.
  • restarting nodebb on boot

    Unsolved Configure nodebb
    3
    1 Votes
    3 Posts
    2k Views
    phenomlab
    @eeeee said in restarting nodebb on boot: can I just run nodebb under nodemon for auto restarts? It’s a better method. Nodemon just looks for file system changes and would effectively die if the server was rebooted meaning you’d have to start it again anyway. Systemd is the defacto standard which is how the operating system interacts in terms of services, scheduled tasks etc.
  • Configure SMTP for Nodebb

    Solved Configure
    14
    5 Votes
    14 Posts
    5k Views
    phenomlab
    @marusaky based on the work completed thus far (in relation to PM exchanges), I’m going to mark this completed. Sending email from the server itself works fine without issue, and DNS appears to be clean (valid SPF, DMARC, and DKIM records). It appears that only Gmail marks incoming messages from your domain as spam - perhaps because of the domain age, which there is nothing we can do to prevent this. Mail delivery to all other domains appears to work fine in al of my tests.
  • [NODEBB] Welcome Message

    Solved Customisation css html nodebb
    20
    2
    13 Votes
    20 Posts
    9k Views
    phenomlab
    @DownPW the ‘js’ code for the banner takes the time from the client, so what it displays really depends on the regional settings for the operating system. I’ve not seen this issue myself but would like to see some examples of screenshots if possible.