Moderators can't lock/sticky topics?

NodeBB Development
  • Hi,
    One of our site's Moderators recently informed me that Moderators are unable to lock / sticky (and undo those actions) on our forums.
    I'm not sure whether this is meant to be like that, however I'd personally like to let our Moderators lock / sticky threads as I trust them enough for that.
    Any help is appreciated.


  • Moderators should be able to lock and sticky topics in the category that they moderate. Can you post nodebb version/theme version and make sure that user is actually a moderator in the desired categories.

  • I'm running v0.7.2
    I'll check on my testing account.

    Sorry, after checking through my group's permissions it has seemed to remove all those permissions. My guess would be that I recently renamed my group from 'Mod' to 'Staff'. I think a neat feature would be global permissions, so rather than me having to go through my twenty odd categories, applying all the permissions, I can just give site-wide permissions to a group.

    Thanks anyways.

Suggested Topics

  • 3 Votes
    6 Posts

    🤔 interesting...

  • 0 Votes
    7 Posts

    ive found this post, but i dont understand how to get a csrf token

  • 0 Votes
    2 Posts

    Why would you do this? You should never be storing the password in more than one database.

    I think you seriously need to re-think the design of your app.

    If you want to retrieve the hashed password. You need to call the database directly.

    db.getObjectField('user:' + confirmObj.uid, 'password', function (err, password) { // Now you have the hashed password. })
  • 0 Votes
    1 Posts

    Well, I have this issue that I need to do following things:
    1.Mongo Find
    2. Foreach
    3. MongoFind
    4 one more Foreach.

    because of asynchronaus mongo calls it is difficult to get proper result, however process.nextTick should handle this problem and still I have problem:

    function find(dbComm) {

    dbComm.forEach(function (current) { id= parseFloat(current.ID); db.anotherCollection.find({ ID: id}, function (error, result) { result.forEach(function (rank) { if (parseFloat(result.ID) == parseFloat(current.ID)) { rank.rank = 'Some calculations'; } }); }); });


    app.get('/someparams', function (req, res) {

    db.collection.find().sort({ "rank": order }).skip(pagenumber).limit(5, function (err, result) { process.nextTick(function () { find(result, function () { }) }); process.nextTick(function () { res.send(result); }); });

    And on client side I should recive an array where the rank equals 'Some Calculations'
    but unfortunetly it is not...
    However...! If I add setTimeout(function(){}) before res.send(result) (and res.send(result) will be placed inside setTimeout) it actually does work and on client side I recive data with "Some Calculations" but it is just timeout and it fails sometimes and client dont recive "Some Calculations"
    if I put process.nextTick instead of setTimeout it doesnt work and "Some calc..." are not sent.

    Something is beeing done eralier then it should (probably in forEach in find() function)
    and my question is how to deal with it? maybe I should put process.nextTick in different function ?

  • 0 Votes
    1 Posts

    Please see the following GitHub issue. The team would appreciate your thoughts both there and here 🙂

    re: gh#1730