| 14 | | Granting privileges to the special user ''anonymous'' can be used to control |
| 15 | | what an anonymous user can do before they have logged in. |
| | 12 | == Available Privileges == |
| | 13 | |
| | 14 | To enable all privileges for a user, use the `TRAC_ADMIN` permission. Having `TRAC_ADMIN` is like being `root` on a *NIX system, it will allow you perform any operation. |
| | 15 | |
| | 16 | Otherwise, individual privileges can be assigned to users for the various different functional areas of Trac (note that the privilege names are case-sensitive): |
| | 17 | |
| | 18 | === Repository Browser === |
| | 19 | |
| | 20 | || `BROWSER_VIEW` || View directory listings in the [wiki:TracBrowser repository browser] || |
| | 21 | || `LOG_VIEW` || View revision logs of files and directories in the [wiki:TracBrowser repository browser] || |
| | 22 | || `FILE_VIEW` || View files in the [wiki:TracBrowser repository browser] || |
| | 23 | || `CHANGESET_VIEW` || View [wiki:TracChangeset repository check-ins] || |
| | 24 | |
| | 25 | === Ticket System === |
| | 26 | |
| | 27 | || `TICKET_VIEW` || View existing [wiki:TracTickets tickets] and perform [wiki:TracQuery ticket queries] || |
| | 28 | || `TICKET_CREATE` || Create new [wiki:TracTickets tickets] || |
| | 29 | || `TICKET_APPEND` || Add comments or attachments to [wiki:TracTickets tickets] || |
| | 30 | || `TICKET_CHGPROP` || Modify [wiki:TracTickets ticket] properties (priority, assignment, keywords, etc.) except description field || |
| | 31 | || `TICKET_MODIFY` || Includes both `TICKET_APPEND` and `TICKET_CHGPROP`, and in addition allows resolving [wiki:TracTickets tickets] || |
| | 32 | || `TICKET_ADMIN` || All `TICKET_*` permissions, plus the deletion of ticket attachments and modification of the description field || |
| | 33 | |
| | 34 | === Roadmap === |
| | 35 | |
| | 36 | || `MILESTONE_VIEW` || View a milestone || |
| | 37 | || `MILESTONE_CREATE` || Create a new milestone || |
| | 38 | || `MILESTONE_MODIFY` || Modify existing milestones || |
| | 39 | || `MILESTONE_DELETE` || Delete milestones || |
| | 40 | || `MILESTONE_ADMIN` || All `MILESTONE_*` permissions || |
| | 41 | || `ROADMAP_VIEW` || View the [wiki:TracRoadmap roadmap] page || |
| | 42 | |
| | 43 | === Reports === |
| | 44 | |
| | 45 | || `REPORT_VIEW` || View [wiki:TracReports reports] || |
| | 46 | || `REPORT_SQL_VIEW` || View the underlying SQL query of a [wiki:TracReports report] || |
| | 47 | || `REPORT_CREATE` || Create new [wiki:TracReports reports] || |
| | 48 | || `REPORT_MODIFY` || Modify existing [wiki:TracReports reports] || |
| | 49 | || `REPORT_DELETE` || Delete [wiki:TracReports reports] || |
| | 50 | || `REPORT_ADMIN` || All `REPORT_*` permissions || |
| | 51 | |
| | 52 | === Wiki System === |
| | 53 | |
| | 54 | || `WIKI_VIEW` || View existing [wiki:TracWiki wiki] pages || |
| | 55 | || `WIKI_CREATE` || Create new [wiki:TracWiki wiki] pages || |
| | 56 | || `WIKI_MODIFY` || Change [wiki:TracWiki wiki] pages || |
| | 57 | || `WIKI_DELETE` || Delete [wiki:TracWiki wiki] pages and attachments || |
| | 58 | || `WIKI_ADMIN` || All `WIKI_*` permissions, plus the management of ''readonly'' pages. || |
| | 59 | |
| | 60 | === Others === |
| | 61 | |
| | 62 | || `TIMELINE_VIEW` || View the [wiki:TracTimeline timeline] page || |
| | 63 | || `SEARCH_VIEW` || View and execute [wiki:TracSearch search] queries || |
| | 64 | || `CONFIG_VIEW` || Enables additional pages on ''About Trac'' that show the current configuration or the list of installed plugins || |
| | 65 | |
| | 66 | == Granting Privileges == |
| | 67 | |
| | 68 | You grant privileges to users using [wiki:TracAdmin trac-admin]. The current set of privileges can be listed with the following command: |
| | 69 | {{{ |
| | 70 | $ trac-admin /path/to/projenv permission list |
| | 71 | }}} |
| | 72 | |
| | 73 | This command will allow the user ''bob'' to delete reports: |
| | 74 | {{{ |
| | 75 | $ trac-admin /path/to/projenv permission add bob REPORT_DELETE |
| | 76 | }}} |
| | 77 | |
| | 78 | The `permission add` command also accepts multiple privilege names: |
| | 79 | {{{ |
| | 80 | $ trac-admin /path/to/projenv permission add bob REPORT_DELETE WIKI_CREATE |
| | 81 | }}} |
| | 82 | |
| | 83 | == Permission Groups == |
| | 84 | |
| | 85 | Permissions can be grouped together to form roles such as ''developer'', ''admin'', etc. |
| | 86 | {{{ |
| | 87 | $ trac-admin /path/to/projenv permission add developer WIKI_ADMIN |
| | 88 | $ trac-admin /path/to/projenv permission add developer REPORT_ADMIN |
| | 89 | $ trac-admin /path/to/projenv permission add developer TICKET_MODIFY |
| | 90 | $ trac-admin /path/to/projenv permission add bob developer |
| | 91 | $ trac-admin /path/to/projenv permission add john developer |
| | 92 | }}} |
| | 93 | |
| | 94 | Group membership can be checked by doing a {{{permission list}}} with no further arguments; the resulting output will include group memberships. Use lowercase for group names, as uppercase is reserved for permissions. |
| | 95 | |
| | 96 | == Removing Permissions == |
| | 97 | |
| | 98 | Permissions can be removed using the 'remove' command. For example: |
| | 99 | |
| | 100 | This command will prevent the user ''bob'' from deleting reports: |
| | 101 | {{{ |
| | 102 | $ trac-admin /path/to/projenv permission remove bob REPORT_DELETE |
| | 103 | }}} |
| | 104 | |
| | 105 | Just like `permission add`, this command accepts multiple privilege names. |
| | 106 | |
| | 107 | You can also remove all privileges for a specific user: |
| | 108 | {{{ |
| | 109 | $ trac-admin /path/to/projenv permission remove bob * |
| | 110 | }}} |
| | 111 | |
| | 112 | Or one privilege for all users: |
| | 113 | {{{ |
| | 114 | $ trac-admin /path/to/projenv permission remove * REPORT_ADMIN |
| | 115 | }}} |
| | 116 | |
| | 117 | == Default Permissions == |
| | 118 | |
| | 119 | Granting privileges to the special user ''anonymous'' can be used to control what an anonymous user can do before they have logged in. |