Custom Trust Level

This plugin allows you to add a few custom trust levels capabilities in Discourse.

  • This plugin allows you to add/revoke a few capabilities of users of some trust levels.

  • These capabilities can be added/revoked using the site settings.

  • These capabilities can be added/revoked to/from all the users of that trust level.

github-logo (1) Get the code

:raising_hand_man: You can request a feature or report a bug in a reply below or message a maintainer.


  • All site settings of this plugin have a prefix ‘csl_’

  • Not sure how to install a plugin? Follow the steps here


  • Define the minimum trust level to create a post on the topic.

  • Specify whether TL3 (trust level 3) can edit posts or not.

  • Specify whether TL0 (trust level 0) can reply as a new topic or not.

  • Specify whether TL0 (trust level 0) can have actual links in the ‘about me’ field of the user’s profile

  • Define the minimum trust level to invite users to the topic.

  • Define the minimum trust level of users who can ignore others(csl_min_trust_level_to_ignore_users)

  • Define the minimum trust level to auto-hide the posts which are flagged as spam (currently its TL3 or above).

Maintainers and Developers

@Ahmed_Gagan, @fzngagan


Could you please make it possible to specify whether TL2 can invite users or not ?

(currently for an invite-only site they can and there’s no way of changing that whilst letting TL3 and 4 do it)

(See this thread for more: Please make tl for sending invites customisable)


Thanks a lot for your feedback @gh_irina .
yes, I have just added a new setting for this in my plugin.
Now you can check out the updated plugin.


Where do I find this plugin settings to create/customize trust levels?


Firstly Thanks a lot for using my plugin @Heliosurge,
You can search ‘csl_’ in your admin > settings there you will get all 5 settings.


You’re welcome and thanks for creating a great plugin.


You’re most welcome :slightly_smiling_face:


Thank you @Ahmed_Gagan !


Great job @Ahmed_Gagan.

If you have the time could you add a feature to control the efficacy of flags? e.g. at the moment TL4 flagging a post instantly hides it - would be nice to have the option for it to act as a more “normal” flag.


Firstly Thanks a lot for using my plugin and for your precious suggestion @Ellibereth.
Yes, I will definitely look ahead towards your suggestion and revert to you as it gets done


Hey @Ellibereth your feature request is now available in alpha branch of our plugin.
Note: Please test it well before adding it to live site.


This is great. Great idea, thanks for making it possible.

Quick question in order to see if it’s possible and if I can help to the repo: Is it possible to change/disable “any” thing based on Trust Levels? ie: Ignoring users only works on TL2 onwards and either remove it or add it to lower trust levels.

1 Like

Firstly Thanks a lot for using my plugin and for your precious suggestion @Iceman

Yes, This can be done and we will keep this in mind in our next update :slightly_smiling_face:.
Is there anything else you want to suggest we can think about that too in our next update?


hey @Iceman your feature request is now available in master branch of our plugin.
Keep using our plugin :slightly_smiling_face:


Hey @neounix,
Right now this feature is not in our road map for some time as we are tight scheduled with works.
But if you want this feature urgently you can contact @pavilion for a paid gig.


Wow, thank you very much, really. Testing right away!

1 Like

Works like a clock @Ahmed_Gagan, thank you very much. This just opens a lot of possibilities to adjust a Discourse site to specific realities without needing heavy changes on Core!

Which takes me to an idea that may need some debate/input:

A Discourse Site is heavily protected in terms of options to avoid “Trolls”, etc.

  • When pre-registering you can put stuff as private, trust level gates, etc.

  • At register time you can ban certain email domains, names, IPs, etc,

  • After register is done, mostly with Trust Levels, you can even block TL0 from posting to avoid “surprise attacks” and stuff. Also, during posting you have plugins like the Blur Spoiler and the “Details” one to let your users write freely without spoiling each other, for example.

As you know, one of the main “points of impact” for communities is the whole “Spoiler Culture” and, obviously, hate-speech, etc. And we have some tools for it, as noted, but I found an “vulnerability”: A TL0 user, even if gated, can give likes to anything, and your users will be notified. If the name picked by the troll when singing up is either a spoiler or an insult (you can imagine examples) it is basically a successful attack on your community.

One thing I was thinking was to try to add a PR to this great plugin to “disable” the Like function according to TL (basically to remove it from TL0). My big concern is that I don’t know if that would break something, like the “normal progression to the next TL” or something like that. I don’t know how “essential” it is for the user from a system perspective at the beginning. Does anyone know?

(@codinghorror and @sam for reference as you are the references I can think of for this type of stuff, but maybe there is someone else that you can point, sorry for the bother!)


That would be a great thing for this plugin.

For this you can create a PR and @fzngagan will review that for you.

I think this will be a nice functionality if you give it customizable for selecting the minimum_trust_level of the user who can like a post.


I may have jumped the gun with the update, it seems that it is failing after all (I thought I updated but I didn’t since I was debugging another issue and I mixed the option with the default ones, my bad).

I don’t have any option with the “cls_” prefix regarding Trust, however, I went into the logs and I have this:

Will try to use this one as a learning opportunity before I try with the other (have been reading so far and to go form tl0 to tl1 there doesn’t seem to be a setting connected to likes, but I may be wrong).

1 Like

What is it that you’re trying to do? Are you trying to write a new feature or tweak one?

1 Like