[[PageOutline(2-5,Contents,pullout)]] = Component permissions plugin == Description This plugin provides permissions based on ticket components. For example, having a component `foobar` it will provide permission `COMPONENT_FOOBAR_VIEW`, which is then required to access the ticket with this component. == Bugs/Feature Requests Please use [https://github.com/trac-hacks/trac-componentpermissions/issues GitHub] for any issues you have with ComponentPermissionsPlugin. == Download Download the zipped source from [https://github.com/trac-hacks/trac-componentpermissions/archive/master.zip here]. == Source You can clone ComponentPermissionsPlugin from [https://github.com/trac-hacks/trac-componentpermissions here] using git, or [https://github.com/trac-hacks/trac-componentpermissions browse the source] on GitHub. == Installation {{{ pip install ComponentPermissionsPlugin }}} For more information, please follow [TracPlugins#InstallingaTracPlugin documentation] on how to install Trac plugins. == Configuration After installation you have to configure which field it checks to enable component permission checking: {{{#!ini [component-permissions] allow_reporter = false allow_owner = false allow_cc = false allow_cc_email = false hide_components = false }}} You should also add the component near the beginning of the `permission_policies` list: {{{#!ini permission_policies = ComponentPermissionsPolicy, DefaultPermissionPolicy, LegacyAttachmentPolicy }}} Additionally, you can require component permission only when a configured ticket field is checked. For example, this can be such custom ticket field: {{{#!ini [ticket-custom] privacy = checkbox privacy.label = Privacy sensitive privacy.value = 0 }}} And you configure this plugin to use it: {{{#!ini [component-permissions] ticket_field_name = privacy }}} This will require component permission only when the ticket is marked as privacy sensitive. If you want only some components to have limited access, simply assign other components' permissions to the anonymous user. There is also a special permission `COMPONENT_VIEW` which gives the user (or group) permission to see any ticket otherwise limited by component permissions. If you want to allow ticket reporter, owner or users in CC list to have access to the ticket regardless of component permissions, you can set `allow_reporter`, `allow_owner`, and `allow_cc` to `true`, respectively. You can also use `allow_cc_email` to specify user's by their e-mail address (even if such user does not yet exist). However be careful: make sure users' email addresses are verified and that they cannot be freely changed to arbitrary values. Setting `hide_components` to `true` will hide components from ticket and other forms if user does not have permission for them. Works if not using a custom field. == Author/Contributors '''Author:''' [wiki:mitar] [[BR]] '''Maintainer:''' [wiki:mitar] [[BR]] '''Contributors:'''