Community approval of users

In my community we have decided now that we need a closed community and the user must be approved by staff. So, I have enabled must approve users. And it’s working but it takes too much time to review.

It would be best If the existing members can vote on the approval request and review them. Then the users can be approved automatically after some time of poll-time or staff can review the votes and take quick action on the request. For now, I have manually created a topic in the category where users of trust level 2 can review the request, where I am manually adding the screenshot (After doing inspect-element and hiding the email of the user) of the review page? If it can be a part of the discourse that would be great.


Instead of going “Must Approve users” you should make it Invite only and let people invite others.


Not sure if myself or anyone else is a fan of this…

This process takes longer that pressing the approve user :slight_smile:

1 Like

This is only because In our case we as of now think that existing members should decide whether a member be accepted in the community or not. It shouldn’t be decided by just one user’s opinion ie. invitation or solely based on a staff’s acceptance. Who becomes a new member of the community, existing members be aware of and they should have of somewhat control over the memberships.

1 Like

This kind of barrier to entry can’t be in discourse core. What you’re asking for has to be in a custom plugin of sorts. If you’ve got a budget, feel free to post in #marketplace


Yeah, I agree with you. One person’s particular use case may not be suitable for all. But isn’t it appropriate for a closed community to accept members which are approved by majority of existing members? I’ll first go with my own custom manual solution that I’m using with polls and let’s see how it works.

This doesn’t make even the remotest of sense to me. If it is a closed community, It doesn’t require democracy. If it is a democracy it doesn’t have to be locked or closed. What you’re trying to make here is a overly complicated system that is both inefficient and slow at the same time.

If I were you, I’d have a group of individuals (preferably elected or appointed) who have the individual authority to approve or reject a user.

1 Like

There’s no such thing called global democracy, people of a particular country having citizenship gets to vote, not everybody and they participate in the democratic system within that country only. Being an Indian citizen I can’t participate in voting in the USA. It makes perfect sense for the USA to have a democratic system. and to vote I can apply to citizenship there and authorities there (staff user in our analogy) can accept or deny my request. That’s how the approval system in discourse works. The invitation system works when say the USA needs prominent or useful people in the world to invite them to join. So, in my case approval system works but it’s not democratic because whom to give acceptance or denial is not democratic and at times staff is not even well aware to accept or deny.

I hope you can understand my analogy here, besides we’re not constraint by technology here anyway. After the user gets accepted or denied, the database can be cleared as well. And the user is accepted only if the user wins in polling and it’s this way automated, no interference of staff is even required. And only TL2 and above users can vote.

In any case, my use case may not be suitable for all use cases, And I agree that it’s a complicated setup. In most scenarios I would also go with invite-only setup or approval by staff as you suggested. And I may still go with the approach you suggested.

Your anology is incorrect then.
What you’re actually doing is that if an Indian applies for a visa to USA, You’re asking each & every citizen of the States to vote whether the person be granted visa or not.

This doesn’t make any sense to me. You are confusing two different aspects having no relationship one with the other.

Fine. The only real difference of your analogy compared to the one of the OP, is that he considers something more “strong” and permanent of an acceptance compared to you (citizenship vs visa). In the end, it’s the same.

He indeed wants people to decide directly themselves who they want to accept or not. And entry isn’t open to everyone. Acceptance is needed.


No, that’s not the role of discussion software. Are you aware of anyone other software which does this?

Can you point us to any analog elsewhere?

1 Like

It’s not because nobody does it that it’s a bad idea. On the principle, personally I find the idea quite good. I’m not saying the software has necessarily to take care of it (especially not in core) but it’s a pretty great way of functioning for a closed community.


Even if it were for citizenship (or membership of a forum) I don’t think it’s of any sense to have everyone’s vote to let one join.

1 Like

You are for sure entitled to your opinion. But I don’t really see what makes you think that, or what your rationale is. It is true that the bigger the community and/or the number of potential new members, the less practical it may be. But for a not-too-big closed community, as I said, I personally like the concept.

1 Like

I just don’t see the point. Staff are there to approve users as ‘apparently’ staff are trusted. Not so sure why the whole community has to hop in to help approve users… I don’t know. Especially if the whole community says: ‘Nah, we don’t like the look of this user’ and it becomes more of public humiliation whether it is in a public or private community. It’s like going:


Come, come! See our beautiful collection of idiots we decided to reject publicly.

So for this reason Raj_Rathore I’m out.



Yeah, I see that you don’t see it. Staff isn’t necessarily “trusted”, nor has it been chosen by the community in most cases (you may argue it has been, indirectly, as the people chose to continue to come to that forum). Staff approving users is closer to a dictatorship than a democracy. At best, it would be representative democracy if the staff has been chosen (when OP would like direct democracy)

As it is then when people are turned down at the entry of a nightclub, not given/fired from a job, or far closer to the subject: banned from a forum. And where exactly is the difference with being “publicly humiliated” when turned down by the staff ? At least, when done by the community, it is decided by quite a lot of people. You can bet on it to be more “fair” (not necessarily, but probable) whereas when arbitrarily decided just by one or a few persons.

It’s also a good way to show respect to your community by letting them have their say (and create further alchemy as the community decides who they want or not).

No offence, but I just don’t see how you can’t see the point. That it would bother you and/or you want to stay “in control”, and so on, ok (again, closer to a dictatorship, but that’s what privately owned forums usually are. There are then good and bad dictators).

1 Like

Why people are feeling so strongly against this? And who decides the user approval based on profile pic? when a user can choose or associate any pic with their account, and discourse even assigns an image based on the first letter? In our case there’s a questionnaire using custom fields that are to be filled by the user when signing up. And it’s based on that users are getting accepted.

You can see it this way that a user must be reviewed by multiple users… I want the opinion of others. E.g. In who wants to be a millionaire why is there an audience poll? Why aren’t they just pick someone randomly and ask only one person the answer is? We’re assuming that the audience is probably more sure. And in small communities, there’s not even a single staff except admin.

And in a way, I want to honor my community that they have a say about who gets to be a member of the community and also to have a sense that to be a part of this community is a privilege and they shouldn’t abuse it and always treat it as valuable and have certain control and say about who gets accepted or denied. In any case more people should be involved in the decision to deny or accept the membership request. @Mevo has perfectly understood my views.

And from my imaginary solution to this, a review page should be visible to TL2 and above users and there should be a poll that will be closed after a specified time (the polling system is already part of discourse). If discourse itself suggests doing a poll when selecting moderator or TL4 users then what’s wrong with involving users at the acceptance in community as well. I’m assuming that the new user will be happy that he won an election to be part of this community and would value their right to choose other users. It’ll be a small community of users who trust each other and they can freely share their views and find acceptance of their views, and issues will be discussed in a good manner. They will more likely have a certain respect for each other (because they’re here because somebody has voted for their acceptance in here) and some similarity in their objective of joining the community at least since everybody will have similarity in objective and purpose and to achieve that they share their views and thus people will be more tolerant to each other’s views as well and they will respect the community as well. I hope it works that way at least.

Anyways, If you think it isn’t useful to other people and can’t be part of discourse then it’s okay as well. I have just suggested something which would be useful and a requirement in my use case and not everybody’s use case can be same or similar and it can vary from community to community and even I would choose different options and choices on a case by case basis, If everybody’s use case was same then the discourse would have given just one choice how memberships should be handled and life would be more simple but discourse supports several of these use cases.

I hope I have not done some harm by sharing my use case and views. And please don’t be offended by anything, there’s nothing offensive that I’m suggesting. If it doesn’t make sense to you, it doesn’t have to make sense. The community having a say in who gets to be a member of the community makes a lot of sense to me in my use case at least.


Hi Raj! This is an interesting conversation. I wouldn’t worry too much about the strongly worded responses - there are many people here with strong views about how discourse works, and each of us has to decide how we want to use it to suit our own needs. :slight_smile:

Discourse is designed to be fairly easy to use to run a community, without staff having to put in hours of work on a daily basis just to help people join and get started as members, and even to moderate discussions. My experience has been that the more I rely on the functionality provided out of the box, the easier it is for me on many levels. Adding customizations and third party plugins, changing default settings etc is tempting to do and is fun, but it also adds to the work you have to do to maintain the platform and keep your community happy and engaged. It’s up to you to decide how much extra work you want to create for yourself. Every community is different and while it may seem crazy to some people here to do what you’re describing it may make good sense for your community. You might just want to try it and then you can always change it later if it doesn’t work out.

But I think some of the advice you’ve been given in this topic is quite good and worth contemplating before you set up an open vetting process. A simpler answer might be to just have some open and some private categories, and make it harder to enter the private categories. You could also have a topic where you list members who want to join and invite people to respond to staff (or a committee, if you feel the need for more governance structure) privately within a set timeframe with any objections and reasons. You could update those topics later to delete the people who were rejected. No need to keep that info hanging around.

I think the idea of vetting is not necessarily crazy. You are reminding me of the concept of core membership that I set up for the Global Legal Empowerment Network, stewarded by a human rights organization called Namati. Anyone can join the network to join the legal empowerment movement, but core membership has a higher bar and unlocks added benefits. So it makes sense for it to be harder to attain it, and for us to put additional work into vetting.

You might be interested to take a look at the core membership process and learn from our experience. It’s all explained at Most people get core membership because they applied for and were shortlisted or attended a network event, but members can also fill out an extensive application form and submit it to our staff. We then review their submission for completeness and appropriateness and use discourse PMs to ask for and get complete details and answers to any remaining questions. Once all the info is accepted by us we then put it to our network guidance committee via a private category to decide whether to reject any of the candidates. Those they do not reject we make core and write back to congratulate. This is what it typically looks like once the cycle is complete:


Raj, what you want to do makes total sense to me. But a lot of people (most ?) often disagree with me, so there’s that :wink: Not always, sometimes, I stumble across someone with similar views, like you :ok_hand:

Maybe you could use Discourse core functionalities to achieve your goal, like suggested by Tobias. I like the idea of having a “stepping stone”: A small portion of the forum where people can join freely, describe themselves the way they want, and where members can even engage them. You could tell people they have to each create a “personal” topic with a poll where they are describing themselves in order to be able to join the “real” forum.

1 Like

@Mevo It’s good to interact with like-minded people like you. @tobiaseigen I’ll try to get by using existing functionality provided by discourse though, that’s how I actually prefer to use discourse. Eg. I recently had a few third-party in one of my forums and one of the plugins was causing issues. So, I have removed all third-party plugins. And now, prefer to use plugins when it’s absolutely necessary or has their use. I am a minimalist in that way and always try to make use of what’s already available. And as said it’s only a particular use case here where it actually seems appropriate. And I thought that the idea of community approving its members is actually helpful and rewarding and more automated and less requiring of staff users engagement… because members like to express their views when they are concerned about the community and its objective and they would like to participate in this.

There’s already an option to create a closed group and then create a private section accessible to members of this group. Already registered users can request access to this group to gain access to the private category. It’s a sort of two-tier setup, but that also based on the opinion of one individual, in the end, there also eg. owner who can accept the membership to the group and not many people have a say about it… people will communicate whether to accept or deny membership request… I thought this can be automated and people can get involved here, at least at group level though. Eg. say it’s security council of united nations and existing members decide whether to accept a new nation or not… Say, China invites or approves inclusion of country A because it’s friends with China… or disapproves inclusion of country B which is acceptable to others but not to china because it doesn’t like it. Other members will not even get a say about who to accept or deny. In my case I’m not giving users a veto power, it’s democratic… based on the vote of existing members.

Anyways, I can see that my idea is not well-liked and I guess it’s suited for small communities. Discourse is really awesome though and provides tools to handle all of these cases, some are already integrated solutions and in some cases, like mine, new manual solutions and procedures can be invented. As usual, I prefer to use existing functionality though. It’ simpler that way. And in rare cases I may automate my process in some way or create a somewhat manual solution… if I find it useful and if it’s liked by the users. I too would want what’s best for discourse. I’m not minding anything. It’s cool.

It was really nice to get feedback from you guys. Thanks for giving your valuable time.

Thanks & Regards,