Core: [Approval] Add setting to hold new discussions for approval & more intuitive UI

Created on 1 Apr 2016  Â·  7Comments  Â·  Source: flarum/core

With a couple changes, this extension should be able to support a use case in which all new posts and replies need to be held for admin or moderator approval.

  • Add a permission setting similar to "Reply without approval", but for new discussions.

This setting should go directly beneath the "Start discussions" setting ... but what to call it? Logic dictates that it should be named "Start discussions without approval", but that's pretty long. One possible alternative would be to:

  • Rename the "Start discussions" setting to "Post new discussions", and
  • Add the new setting as "Post without approval"

This new setting will give admins sufficient granular control for various moderation scenarios.

  • Coordinate the "without approval" settings with the corresponding permissions.

Currently a group can be permitted to act without approval, and yet _not_ permitted to act at all. This can be a bit confusing for admins, as it isn't quite clear how the two settings will interact.

There are two approaches that can be taken to make these settings more intuitive.

Either:

  • Filter the options displayed in the "without approval" dropdowns so that permission to act without approval can only be set for groups that already have been given permission to act.

Or:

  • Whenever one of the "without approval" permissions is set, check whether the corresponding permission to act has already been set. If not, set that permission as well.

Either of these changes should make the use of these permissions more intuitive for admins.

  • Clear the "without approval" permission when the corresponding permission to act is removed.

In a similar vein, removal of a "Post" or "Reply" permission could result in a situation where a group is permitted to act without approval, and yet _not_ permitted to act at all; this change will prevent that.

Most helpful comment

Yeah, it's a little complicated but the way I'm working on is to prevent a user from adding a tag to a discussion if they don't have permission to start discussions in that tag without approval. So they only get the opportunity to select those tags when they create the discussion – after they've created it, they're limited to tags which they have full permissions in. Sound good?

All 7 comments

@franzliedke are you working on this?

I will, but I haven't started yet. So if you want to, you can take over.

Reopening, as the requirement for approval within a certain tag can easily be worked around. You simply create a discussion with another tag, and then move it after you're done.

Any ideas on how to solve this?

That's a feature, not a bug. ;)

Couldn't you apply the permission to the movement of discussions as well? E.g., a user needs to have permission to create a discussion in the Destination tag in order to move a discussion to that tag.

(You'd have to check the permission of the user doing the move, not that of the user who created the discussion ... or you could end up preventing even admins from moving the discussion.)

The alternative would be to leave Tags out of it altogether: users in a group without this permission will have all new discussions held for approval, regardless of where they're creating them. That would make it less like the "Reply without approval" permission and less configurable, but still somewhat useful.

Yeah, it's a little complicated but the way I'm working on is to prevent a user from adding a tag to a discussion if they don't have permission to start discussions in that tag without approval. So they only get the opportunity to select those tags when they create the discussion – after they've created it, they're limited to tags which they have full permissions in. Sound good?

Sounds good!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

tobyzerner picture tobyzerner  Â·  4Comments

matteocontrini picture matteocontrini  Â·  3Comments

datitisev picture datitisev  Â·  3Comments

franzliedke picture franzliedke  Â·  4Comments

MichaelBelgium picture MichaelBelgium  Â·  4Comments