Moderators don't have access to Staff category

I noticed my moderators don’t have access to the Staff category. I just installed a fresh discourse locally to test it and it still happens.

I think it’s because my Discourse got installed in German and my Staff group is actually called Team.
So I ran this in console:

staff = Category.find_by(id: SiteSetting.staff_category_id)
staff.group_names = [Group[:staff].name]
staff.save

I hope this doesn’t break anything?

2 Mi Piace

Hmm, no, permissions aren’t set based on the text name of the category.

I just noticed I have the same issue with the Lounge category.
I think the group_names=(names) method of the Category model should find the correct name of the group? Or change the fixtures?

1 Mi Piace

Yes, it looks like we localise the group names here:

https://github.com/discourse/discourse/blob/cbb8f6f0fea62ae25f0d9e4c811e1b97b1f38593/app/models/group.rb#L273

But then set category permissions using the unlocalised group name here:

https://github.com/discourse/discourse/blob/cbb8f6f0fea62ae25f0d9e4c811e1b97b1f38593/db/fixtures/502_staff_category.rb#L8

I think this could do with some improvement

8 Mi Piace

Oh dear, I didn’t realize we were using the string names rather than the numeric codes. I wonder why we haven’t seen more complaints about this for Discourse instances in other languages?

4 Mi Piace

I’ve seen the same (or similar?) bug running Discourse in Czech and thought it was a random glitch related just to a single user. It went away after I temporarily turned the moderator into an admin and back IIRC, so I did not bother reporting it.

3 Mi Piace

Penso di avere lo stesso problema qui…?

Ho un’installazione norvegese e, quando sono loggato nel mio account amministratore, non riesco ad accedere alla categoria staff. La vedo in “Tutte le categorie”, ma quando ci clicco sopra continua a caricare.

Ho creato un utente di prova e l’ho reso moderatore, e quell’ utente ha ottenuto l’accesso.

1 Mi Piace