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
  • Opening links in nodebb widget

    Solved Configure nodebb
    6
    4 Votes
    6 Posts
    3k Views
    phenomlab
    A more efficient way of including this would be to not over complicate it and leverage a standard iframe (providing the CSP headers of the remote site permit this) like below <iframe src="https://www.classmarker.com/online-test/start/?quiz=gag66aea7922f0a5" width="700" height="800"></iframe> This works first time every time on your site as intended.
  • NodeBB v3 Chat Very Slow

    Moved Performance nodebb v3 nodebb chat
    47
    11 Votes
    47 Posts
    21k Views
    phenomlab
    @DownPW Seems fine.
  • NodeBB: Consent page

    Solved Configure nodebb consent
    16
    4 Votes
    16 Posts
    6k Views
    phenomlab
    @DownPW I still do not see any issues.
  • NodeBB: Creating the Swatch modes

    Solved Configure swatch
    2
    0 Votes
    2 Posts
    1k Views
    phenomlab
    @mventures the swatch feature you refer to isn’t a NodeBB plugin, but a utility that I wrote that handles this. It is available for v2 (as you can see here) but I’ve stopped developing and releasing the code because it has been entirely rewritten to work for v3. If you’d like the code, this is possible, but you’ll need to upgrade to v3 first.
  • Podcast Share NodeBB

    Solved Configure podcast nodebb
    15
    4 Votes
    15 Posts
    5k Views
    phenomlab
    @cagatay You could experiment with nodebb-plugin-ns-embed but I expect the x-origin tag on the remote site to prevent playback.
  • 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] Import custom Font

    Solved Customisation custom fonts nodebb css
    12
    3 Votes
    12 Posts
    5k Views
    phenomlab
    @cagatay you’ll need to define this in the body tag (or another element if you want greater or more granular targets) - for example body { font-family: "Poppins"; font-size: 16px; } Essentially, you use the font-size CSS directive.
  • NodeBB metadata

    Solved Configure nodebb
    4
    2 Votes
    4 Posts
    2k Views
    JAC
    @phenomlab said in NodeBB metadata: @jac Are you sure ? https://www.google.co.uk/search?q=site%3Astockportcounty.fans&sxsrf=AOaemvLwnaZL-PliU_2dBOg_Eo1pMVhBjg%3A1638982328139&source=hp&ei=uOKwYeatBcOsad3yp7AE&iflsig=ALs-wAMAAAAAYbDwyLBSDcG5XYoFCKwQFhgz94wTxOcV&ved=0ahUKEwjm6dX71NT0AhVDVhoKHV35CUYQ4dUDCAk&uact=5&oq=site%3Astockportcounty.fans&gs_lcp=Cgdnd3Mtd2l6EAM6BAgjECc6CwgAEIAEELEDEIMBOg4ILhCABBCxAxDHARCjAjoRCC4QgAQQsQMQgwEQxwEQowI6BQguEIAEOggIABCABBCxAzoFCAAQgAQ6CAguELEDEIMBOgsILhCABBDHARCvAToICC4QgAQQsQM6BQgAELEDOgsILhCABBDHARDRAzoLCAAQgAQQsQMQyQM6BQgAEJIDUABYySZg0CdoAHAAeACAAW2IAa0NkgEEMjMuMpgBAKABAQ&sclient=gws-wiz Fair enough 🤪🤪.