Badges not being granted for restricted categories


(Stephen Chung) #1

I have a strange behavior on my forum. Basic badges (such as first like, first emoji etc.) that should be grated to users are not granted. Only admin users are granted these badges, while normal users are not.

So for example, I can login as a normal user, and like as many posts as I want, and use as many emoji’s as I like, but I still won’t see the “First Like” and “First Emoji” badges.

Thing is, there are certain early users that successfully got these badges. But recently all new users won’t get them.

I wonder if it has something to do with some settings that I’ve changed. Can somebody point me to a direction to check?


(Jeff Atwood) #2

Sounds like sidekiq is not running on your Discourse, so the background daily / weekly tasks are not working?


(Stephen Chung) #3

I checked. Sidekiq is running and nothing queues. Emails are being sent…

Must be something with the badge granting queries?

Is there a place to check?


(Jeff Atwood) #4

Well you can see people are getting First Like here on meta, so it’s not a bug, but some kind of configuration issue with your instance:

https://meta.discourse.org/badges/11/first-like


(Jay Pfaffman) #5

Are those categories read by everyone?


(Stephen Chung) #6

Those categories are restricted to users of a certain group, but most of the users are members of that group, so they can see.

@codinghorror I think it is a settings problem. Probably I set something on the way that blocks the badges from being handed out.

Is there a log or somewhere that I can check whether the badge queries are being run?


(Sam Saffron) #7

Badges are not allowed on security restricted categories.


(Stephen Chung) #8

Aha!

That might be it. So nothing a user does on categories not open to Everyone will earn badges that are tied to posts in those categories?


(Jay Pfaffman) #9

That’s right. A community that I work with just moved a bunch of categories to be accessible only to some and all the badges went away, to the Dismay of many.


(Stephen Chung) #10

I think this reply here says basically the same thing:

@sam I wonder if I restrict everyone to See or Reply/See for a category, will badges count then? Or will it only work on categories that have everyone ==> Create/Reply/See?

Technically speaking, you don’t need to create a post to earn a lot of badges – simply replying will work fine.


(Sam Saffron) #11

It is lose-lose, if we granted them then people would complain :studio_microphone: “why does Jane have first like and not have link to the post in the badges page, is there a bug :bug:


(Sam Saffron) #12

I think everyone => read only will works.


(Stephen Chung) #13

So, in other words, the rationale behind this feature is that, for fairness and openness sake, and to enable public audit of these “achievements”, any user must be able to verify the badges earned by somebody so that there is no chance of favoritism.


(Stephen Chung) #14

Sorry to bump this up again.

I understand that badges are not awarded for topics in restricted categories, however this leads to a very strange user experience.

For example, my forum has both restricted categories and open categories. People mostly participate in restricted categories, where they would do a lot of things without being awarded badges.

Then they did something in an open category, and then suddenly they are awarded a “First Like” badge or something, although they probably have Like’d many many times before in the restricted categories. This caused my users to ask WTF?

Is there any alternative to mitigate this, other than opening up many categories to Everyone?


(Jeff Atwood) #15

I really don’t know, as I recall this was a decision @sam made long ago, it is unclear to me why this is a desired behavior.


(Sam Saffron) #16

Cause the system is not auditable if we did that

Now anyone can see who has a badge and why they have said badge


(Jeff Atwood) #17

And existing badges are removed, if topics / posts that originally triggered the badge are moved to secure categories, as I recall.


(Steve Combs) #18

Could a compromise be that actions related to a specific post in a restricted category just display as private or even better show to users with rights to see that post?

Alternatively just turn off the info displayed about the reason for the badge via a setting.

The admins can dig around in the database if needed. I know some users will game the system but who cares? The goal is to reward good behavior. The bad guys are winning under the current system.


(Christoph) #19

Yes (though I’m not sure *exactly * what you mean here), I also think it would make sense to restrict information about the awarding post rather than not awarding the badge at all.

So, more specifically: from what I understand, the only problem is the link to the awarding post, because even if a user doesn’t have access to that post, the url would reveal information about the post, right? So what is needed is some mechanism that either renders or doesn’t render the link when it is displayed (probably too much effort) or that either includes or doesn’t include the link in the first place, i.e. when the badge is awarded.

If none of these compromises works, I would still welcome a setting that turns off the badge audit trail altogether and then awards badges regardless of restrictions.


(Stephen Chung) #20

This I think will satisfy a lot of people running mostly-restricted forums.