Thanks to work done by Daniel Wehner, Konstantin Kaefer, Daniel F. Kudwien and myself, today I've deployed improvements to permission control in translation groups. Previously we had two levels of users: group administrators and group members. Group members could suggest, import and export and administrators could approve suggestions (and manage group members). To be able to approve suggestions, one needed to hand out group administration permissions to people (which allowed them greater control over the group, not just the approval process). It was also brought up several times, that allowing administrators to approve their own suggestions (or directly submit translations) might not be desired in some groups. We had a possibility to set groups to all open (where everybody is a moderator as well) or to use this controlled model.

Starting from today, we have more granular permissions available and they are handed out on the group level thanks to our new use of the 4.x branch of Organic Groups User Roles module. Permissions related to translations are not anymore related to group administration status; these are now two distinct concepts. The overly generic open and controlled group permission models which were previously available are now obsoleted by this more granular system. Let's see the changes detailed for different types of users.

Changes to group members

When you become a group member, now you are assigned the "translation team member" role when under the given group. This role allows you to post suggestions to the groups you are a member of as well as import and export text. You can now be assigned with permission to approve your own suggestions or approve only suggestions from others (or both). Additionally to that, you might be assigned the permission to manage translation permissions of all members without otherwise becoming a group admin. Assigning permissions will be up to the translation team managers (which currently overlap with group admins but might not overlap in the future depending on your group setup).

Even if your group was set to be open before, you do not have moderation permissions now so your group administrator can hand out the granular permissions properly. This was done to avoid giving out possibly too broad permissions.

Changes to group administrators

There are four new roles available, which are configurable on the group level. You can hand out roles to members of your groups which role assignments will only be effective in your group. Details of the roles are as follows:

"translation team member"
This role is granted to all members on joining the group (and existing members were already granted this role). A team member can submit suggestions, import and export text.
"translation self moderator"
This role was not granted to any existing user. Consider who you want to allow to approve/decline their own suggestions, letting them submit translations directly as well. You might want to hand this out to all your moderators or none of your moderators or some of your moderators.
"translation community moderator"
This role was granted to all group administrators. Community moderators can approve and decline suggestions sent by others but not by themselves (that requires self-approval permission governed by the previous role). This role is also granted automatically to all members who are made group administrators. However you do not need to make a user a group administrator to hand out any of these permissions.
"translation community manager"
This role was granted to all group administrators, which you might want to revise yourself. Team managers will be able to hand out and revoke roles to people in the group. Once again, you do not need to make a user a group administrator to hand out this role.

All-in-all, group members will still be able to submit suggestions, import and export. Those, who were previously group admins are still group admins, can still moderate suggestions from others and now can also manage all roles in the group in the current setup. Nobody can approve or decline their own suggestions currently. However, all these are configurable. You can now consider demoting people from group administrators since that is not anymore related to any permissions regarding translation management. You can also individually hand out community moderation and self-moderation permissions and appoint a few people to manage these permissions continually.

How to manage member roles

To maintain roles related to users in your group, click the member list link in your group block ("10 members" on the right in this screenshot), pick the "Configure roles" tab and configure roles for each user.

What is automated

Across the whole site, group members are assigned the "translation team member" role on joining and "translation community moderator" on becoming a group administrator. We hope these are safe assumptions, and think that beyond this, each group could have their own preference as to what permission to hand out to people in the group. Therefore there are no further automations implemented.

What if something is broken

Feedback is welcome as always. Please look for existing issues, comment on the applicable one if found or open a new issue if no exixting one found for any issues possibly arising from this migration. See our Having issues? page for more information.

Comments