NodeBB / NodeBB/NodeBB

Moderation Permission Changes

Open
#3,914 18 comments 4 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
JavaScript
Stars
15.2k
Forks
3k
Avg merge
16h 19m
Merged PRs (30d)
167

Description

Intro

Not too long ago, I created a basic issue about the current permissions system in NodeBB and what I would like improved in it. ( #2462 ) Some of it did in fact get implemented, but there's more that desperately needs to be done to turn this into a major player in the forums board industries. Here are my few troubles/wishes for NodeBB's permission system. The ideas I propose would launch NodeBB, in this aspect, far ahead of it's competition (Discourse, Flarum, esoTalk)

Why Change?

As far as permissions for staff on NodeBB go, we currently only get two options:

  • Admin: Do everything, everywhere, always, +management panel
  • Moderator: Do everything, where specified, always.

In this current system, I'm expected to trust the absolute lowest staff member on my forums with the ability to unstick/stick, delete/undelete, edit, and move ANY TOPIC/COMMENT where they have the moderator permission in that category. This is extremely annoying for me, as I find it hard to give that much power to an untrusted individual. You may say "Why are you giving those permissions to someone who you don't trust?", and my answer to that is: because I need moderators, and I can't take the time to trust each and every moderator on a personal level, and if they decide to do stupid things, the effort it would take to revert their changes is absurdly high.

Proposition

  • Assign groups a rank hierarchy index
    • As an example, an admin would have index 0, meaning no one is higher than them
    • One of my moderator groups could have an index of 3, which means index's <3 are higher, and >3 are lower
  • Split moderator permissions up into more nodes (heh)
    • Change from "moderate" permission node to splitting it into separate "actions"
      • Delete / Undelete
      • Sticky / Unstick
      • Move topic
      • Edit topic
      • Etc (ban user, mute user from posting for a time, spy in conversations, and more)
    • Each "action" be split up into 3 nodes
      • Can do action to those of higher index
      • Can do action to those of equal index
      • Can do action to those of lower index

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no files, tests, or entry points. Start by reviewing the existing permission system and the related issue #2462, then clarify the proposed group hierarchy and granular moderation actions with maintainers; done would mean an agreed design and implementation covering the required permission levels.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, node.js
Domain
authorization, backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.