User access model
There are two kinds of users, those who have logged onto the project as a named user and those who have not. While not logged on the user is an anonymous user.
You also need to know that there are two components to a project - a trac envrionment (wiki and ticketing system) and an svn repository. The two have distinct access control mechanisms, which we try to keep in sync with each other.
There are five kinds of access levels that a user account (or the anonymous user) may have:
- Read access. This is designed for anonymous read access. It allows only read access to the trac environment, not to the repository. Compared to the next level, ticket access, this level does not allow the creation or adding to tickets. There is a genuine problem allowing anonymous ticket creation or adding to, as this will eventually be used by spammers to put hyperlinks onto public web pages (the ticket).
- Ticket access. This is designed for the case where certain users (or anonymous users) should be able to make full use of the ticketing system, but should not have access to the repository.
- User access. This is the original minimum access level (other than no access). It allows to read the trac environment, to make full use of the ticketing system, and to read the repository.
- Developer access. This is a different name for read/write access. The permissions are a superset of user access. This includes read/write access to the svn repository.
- Admin access, or TRAC_ADMIN permission. This gives full access to the trac environment, but no access at all to the svn repository (other than browsing it through the wiki).
To make these access levels real, the permission groups "reader", "ticket", "user" and "developer" have been defined. There is also an hourly job on the system that translates this information into svn repository access permissions. This is done in case that an admin has changed access to the trac environment. There is no permission group "admin", as this has no effect on the svn repository and can be handled by the single trac permission TRAC_ADMIN.
The exact permissions assigned to these permission groups ticket, user, developer and admin are listed in UserAccessDetails.
Admins and developers have an "Admin" button in the wiki. When they use it an admin can select General : Permissions to configure which users have which level of access:
- To grant anonymous read access for wiki and ticketing only (ticket access) use the bottom right panel with subject "anonymous" and group "ticket".
- To grant anonymous read access, including read access to the SVN repository (user access) use the bottom right panel with subject "anonymous" and group "user".
- To grant read access for wiki and ticketing only (ticket access) to a named user use the bottom right panel with the user name as subject and with group "ticket".
- To grant read access (user access) to a named user use the bottom right panel with the user name as subject and with group "user".
- To grant read/write access (developer access) to a named user use the bottom right panel with the user name as subject and with group "developer". A user is never given both user and developer access explicitly, developer access includes user access anyway. If you promote someone from user access to developer access, you should remove the explicit user access for that user.
- To grant admin access to a names user use the top right panel with the user name as subject and with action "TRAC_ADMIN".
Warning: Although admin access includes developer and user access to the wiki and ticketing system, it does not include any access to the repository through and svn client. In general an admin is also explicitly a user or a developer.