== アクセス制御とパーミッション - Trac Permissions ==
[[TracGuideToc]]

Tracはアクセス制御にシンプルでありながら柔軟なパーミッションシステムを使用します。

パーミッションの付与は [wiki:TracAdmin trac-admin] ツールを使用して操作します。

システムにアクセスする通常のビジター (HTTP認証を通らないユーザ) は、 {{{anonymous}}} という
デフォルトのロール (''仮想のユーザ'') を割り当てられます。
未登録のユーザ/ゲストユーザの権限を設定するためには、{{{anonymous}}} ユーザにパーミッションを設定してください。

これらの権限に加えて、登録したユーザ (HTTP認証を行ったユーザ) には個別に
権限を付与することができます。

=== 付与できる権限 ===

 * {{{TRAC_ADMIN}}}
 * {{{LOG_VIEW}}}
 * {{{FILE_VIEW}}}
 * {{{CHANGESET_VIEW}}}
 * {{{BROWSER_VIEW}}}
 * {{{TICKET_VIEW, TICKET_CREATE, TICKET_MODIFY, TICKET_ADMIN}}}
 * {{{REPORT_VIEW, REPORT_CREATE, REPORT_MODIFY, REPORT_DELETE, REPORT_ADMIN, REPORT_SQL_VIEW}}}
 * {{{WIKI_VIEW, WIKI_CREATE, WIKI_MODIFY, WIKI_DELETE, WIKI_ADMIN}}}
 * {{{MILESTONE_VIEW, MILESTONE_CREATE, MILESTONE_MODIFY, MILESTONE_DELETE}}}
 * {{{ROADMAP_VIEW, ROADMAP_ADMIN}}}
 * {{{TIMELINE_VIEW}}}
 * {{{SEARCH_VIEW}}}
 * {{{CONFIG_VIEW}}}

{{{～_ADMIN}}}権限はユーザに ''～'' に関連する権限をまとめて付与するためのショートカットです。{{{TRAC_ADMIN}}}
権限を持つことは*NIXシステムでrootになるようなものです(つまり、何でもできます)。

=== 権限の付与 ===

現状では、ユーザに権限を付与するには {{{trac-admin}}} スクリプトを使用する
方法しかありません。現在(カレントで)設定されている権限のセットは
以下のコマンドで一覧表示されます:

{{{
  $ trac-admin /path/to/projenv permission list
}}}

次のコマンドはユーザ''bob''にレポートの削除権限を与えます:

{{{
  $ trac-admin /path/to/projenv permission add bob REPORT_DELETE
}}}

=== パーミッショングループ ===

パーミッションをグループ化してロール(''developer''、''admin''、etc.)を
構成することができます:

{{{
  $ trac-admin /path/to/projenv permission add developer WIKI_ADMIN
  $ trac-admin /path/to/projenv permission add developer REPORT_ADMIN
  $ trac-admin /path/to/projenv permission add developer TICKET_MODIFY
  $ trac-admin /path/to/projenv permission add bob developer
  $ trac-admin /path/to/projenv permission add john developer
}}}

=== デフォルトパーミッション ===

特別なユーザ ''anonymous'' に権限を付与することは、未ログイン状態の匿名ユーザに
権限を付与することになります。

同様に、特別なユーザ ''authenticated'' に権限を付与することで、 (HTTP認証に登録された) 全登録ユーザに権限を一律に設定することができます。

----
参考: TracAdmin, TracGuide