Skip to main content

Simple Multi Project plugin for managing several projects with one Trac instance.

Project description

Simple Multi Project Plugin

SimpleMultiProjectPlugin lets you easily manage multiple user projects with one Trac instance. This is not a meta project in front of several other Trac projects. It implements the idea of a SingleEnvironment.

Key features

  • Milestones, versions and components can be assigned to all or certain projects
  • Milestones and versions are displayed on the Roadmap page and can be grouped by project
  • On the roadmap page and timeline page it is possible to apply filters to show only projects that meet certain criteria.
  • New Ticket will just offer the associated milestones, versions and components of the chosen project. This requires a new custom-ticket field project.
  • Restrict access to certain milestones, versions and tickets by defining members or non-members of a project.

Integration with other plugins

MultiProjectBacklogPlugin integrates with this plugin allowing you to maintain project specific backlogs in your agile process.


You can check out SimpleMultiProjectPlugin from here using Subversion, or browse the source with Trac.

Download the zipped source from the Homepage or Pypi.


Note: The plugin doesn't use Genshi for Trac 1.4+.

  • Add a custom ticket field 'project' to your trac.ini file to give tickets the information to which project they belong. Milestones selection depends on that as well.

    project = select
    project.label = Project
    project.value =
  • Give permissions to certain users. Available permissions are:

    • PROJECT_SETTINGS_VIEW - you can see the list of projects with their description and their component mapping on the admin panel
    • PROJECT_ADMIN - full admin access, you can also create and delete projects, and map to milestones, versions and components
  • Add the new policy SmpPermissionPolicy to the front of your permission policy provider list to enable project permission checks for users.

    permission_policies = SmpPermissionPolicy, ... any other ...


The plugin comes with sane default values, but if you have specific requirements you may change some configuration options using the Trac admin web interface.

Set project permissions for users

A new permission system is implemented by a new permission policy SmpPermissionPolicy and additional request filtering. The latter is necessary because TracFineGrainedPermissions are limited to some resources, notably excluding versions and components.

For permission checking and proper filtering the permission policy plugin must be activated and configured in trac.ini:

permission_policies = SmpPermissionPolicy, ... any other ...

Make sure the new policy is the first in the list of available policies.

You may mark a project as restricted on the project admin page which has the following effects.

  • Tickets linked with a restricted project can't be accessed by users without permissions.

    This works for individual ticket pages, ticket queries, the timeline page and everywhere else a ticket is shown.

  • Milestones belonging to restricted projects can't be accessed without permissions.

    This affects ticket queries, the roadmap and timeline pages and individual ticket pages.

  • Components and versions of restricted projects are not available for queries or when creating/modifying ticket pages.

Projects without restrictions and their linked resources can be accessed by any user. Normal Trac permission settings apply.

Project permissions are assigned using the Trac permission admin panel. Each project has a unique ID which is not changing over the lifetime of a project, even if you change the project name. To give a user access to a project you have to give the permission PROJECT_<id>_MEMBER where <id> is the unique project id. For finer control over individual resources the normal Trac permissions are available.

This means a project permission is a coarse filter to only prevent global project resources access. You can't have individual fine grained resource access for different projects (like TICKET_VIEW) because normal Trac permissions are defined for all projects. Use TracFineGrainedPermissions if you need such control.


Christopher Paredes, falkb, Cinc-th, Ryan J Ollos

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

TracSimpleMultiProject-0.7.4.tar.gz (68.1 kB view hashes)

Uploaded source

Built Distributions

TracSimpleMultiProject-0.7.4-py2.7.egg (71.1 kB view hashes)

Uploaded 2 7

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page