Pootle permissions
This page will explain how to administrate permissions on your Pootle server. There are several rights which can be assigned to users or to a group of users (like all logged in users). The default site wide permissions are configured by the server administrator. This is the permissions that will be used in each project unless other permissions are configured. This is documented in the file pootle.prefs with several examples and should be done during the initial configuration of the server. Alternatively it can be changed while the server is stopped. Permissions can be customised per language/project combination, by either editing the default rights for that project, or by assigning specific rights to individual users.
Available permissions
The following permissions may be set for the server or per language project combination:
- view - this doesn't really do anything. In future we might implement it properly to limit the visibility of certain projects.
- suggest - the right to suggest a translation for a specific unit
- review - the right to review the suggested translations and accept or reject them
- translate - the right to supply a translation for a specific unit or to replace the existing one
- archive - the right to download archives (like ZIP files) of a project or directory
- pocompile - the right to download compiled files (for example .mo files)
- overwrite - the right to entirely overwrite a file at the time of upload (instead of the default behaviour of merging translations)
- assign - the right to assign work in goals to translators
- administrate - the right to administrate the permissions of this project (this is not the same as the site administrator)
- commit - the right to commit a file to the version control system (if the files are configured for version control integration)
Permissions interface
Find the permissions interface as follows:
- Log in as administrator
- Go to the admin page
- Go to the projects admin page
- click on the project name for which you want to set permissions
- click on the language for which you want to set permissions
Here the current rights are listed as they are assigned. The user “nobody” refers to any user that is not logged in (an anonymous, unidentified user). The user “default” refers to the rights that all logged in users will have by default, unless other specific rights were assigned to them. The rest of the users are users of the Pootle server for which non-default rights were assigned.
Changing permissions
In the list of permissions, you can simply select which rights must be assigned to that user or class of users. You might need to hold down the Ctrl key of you keyboard to select multiple rights. Changes will be updated when you submit the form.
Adding a user
To set permissions for a specific user, select the user in the dropdown list and set the specific rights for that user. This is only necessary if the user does not yet have their own set of rights defined.
Note, however, that users need to select the language and project in their options before you can administrate them.
You can administrate him even if he did not select the language and project in his options, if you know what his exact username is. Simply view the source of your browser's cached copy of the admin.html page, and edit it to add that user to the dropdown list. Then reload the page from the cache. You will then be able to select the user from the dropdown list and administrate him.
Removing a user
To reset a user's rights to the default rights, select the tick box next to their name and permissions list. When you submit, their rights will be reset to the default rights.
Note
A user with administrative rights can remove his own administrative rights.
Implementation detail
The permissions are stored in .prefs file in the project directory. To retain your settings if you move you po files to a new server, these files should be copied along with your PO files.
An example rights section could look like this:
rights: default = u'view, suggest, translate, review, archive, pocompile' nobody = u'view, suggest, translate' nelson = u'view, suggest, translate, overwrite, review, archive, pocompile, assign, admin, commit'