= アクセス制御とパーミッション = [[TracGuideToc]] Trac はシンプルなアクセス制御システムを使用しています。 パーミッションの付与は [wiki:TracAdmin trac-admin] ツールを使用して操作します。 認証していないユーザは "anonymous" としてシステムにアクセスします。 "anonymous" ユーザには anonymous/guest ユーザの権限を割り当てます。 権限がない Trac のモジュールについてはナビゲーションバーに表示されないでしょう。 これらの権限に加えて、登録したユーザ (HTTP認証を行ったユーザ) には個別に権限を付与することができます。ログインしたすべてのユーザは "authenticated" という仮想グループに所属し、 "anonymous" からパーミッションを継承します。 == 付与できる権限 == あるユーザで全ての権限を有効にしたい場合、 `TRAC_ADMIN` 権限を使用してください。 `TRAC_ADMIN` 権限を持っているユーザは *NIX システムでの `root` と同じように、いかなる操作も行うことができます。 または Trac の機能ごとに異なる種類の権限を、ユーザごとに個別に付与することができます。(パーミッション名は大文字 / 小文字を区別しません): === リポジトリブラウザ === || `BROWSER_VIEW` || [wiki:TracBrowser リポジトリブラウザ] でディレクトリの一覧表示を行う || || `LOG_VIEW` || [wiki:TracBrowser リポジトリブラウザ] でファイルとディレクトリのリビジョンログを表示する || || `FILE_VIEW` || [wiki:TracBrowser リポジトリブラウザ] でファイルを表示する || || `CHANGESET_VIEW` || [wiki:TracChangeset リポジトリへのチェックイン] を表示する || === チケットシステム === || `TICKET_VIEW` || 登録済みの [wiki:TracTickets チケット] を表示し、 [wiki:TracQuery チケットクエリ] を実行する || || `TICKET_CREATE` || 新規 [wiki:TracTickets チケット] を登録する || || `TICKET_APPEND` || [wiki:TracTickets チケット] にコメントや添付ファイルを追加する || || `TICKET_CHGPROP` || チケットの概要フィールドを除いた [wiki:TracTickets チケット] 属性(優先度, 担当者, キーワードなど) を変更する || || `TICKET_MODIFY` || `TICKET_APPEND` と `TICKET_CHGPROP` の両方に加え、 [wiki:TracTickets チケット] の解決を可能にする || || `TICKET_ADMIN` || 全ての `TICKET_*` 権限に加え、チケットへの添付ファイルの削除やチケットの概要フィールドの変更を可能にする || === ロードマップ === || `MILESTONE_VIEW` || マイルストーンを表示する || || `MILESTONE_CREATE` || 新しいマイルストーンを作成する || || `MILESTONE_MODIFY` || 既に存在するマイルストーンを編集する || || `MILESTONE_DELETE` || マイルストーンを削除する || || `MILESTONE_ADMIN` || 全ての `MILESTONE_*` 権限を持つ || || `ROADMAP_VIEW` || [wiki:TracRoadmap ロードマップ] を表示する || === レポート === || `REPORT_VIEW` || [wiki:TracReports レポート] を表示する || || `REPORT_SQL_VIEW` || [wiki:TracReports レポート] の SQL を表示する || || `REPORT_CREATE` || 新しい [wiki:TracReports レポート] を作成する || || `REPORT_MODIFY` || 既に存在する [wiki:TracReports レポート] を編集する || || `REPORT_DELETE` || [wiki:TracReports レポート] を削除する || || `REPORT_ADMIN` || 全ての `REPORT_*` 権限を持つ || === Wiki システム === || `WIKI_VIEW` || 既に存在する [wiki:TracWiki Wiki] ページを表示する || || `WIKI_CREATE` || 新しい [wiki:TracWiki Wiki] ページを作成する || || `WIKI_MODIFY` || [wiki:TracWiki Wiki] ページを編集する || || `WIKI_DELETE` || [wiki:TracWiki Wiki] ページと添付ファイルを削除する || || `WIKI_ADMIN` || 全ての `WIKI_*` 権限に加え、''読み込み専用'' ページを管理する || === その他 === || `TIMELINE_VIEW` || [wiki:TracTimeline タイムライン] を表示する || || `SEARCH_VIEW` || [wiki:TracSearch 検索] の表示と実行 || || `CONFIG_VIEW` || ''Trac について'' のページに追加して、現在のコンフィグやインストールされているプラグインの表示を可能にする || == 権限の付与 == [wiki:TracAdmin trac-admin] を使用してユーザに権限を与えて下さい。現在設定されている権限は以下のコマンドで一覧できます: {{{ $ trac-admin /path/to/projenv permission list }}} 次のコマンドはユーザ ''bob'' にレポートの削除権限を与えます: {{{ $ trac-admin /path/to/projenv permission add bob REPORT_DELETE }}} `permission add` コマンドでは複数の権限を扱うことができます: {{{ $ trac-admin /path/to/projenv permission add bob REPORT_DELETE WIKI_CREATE }}} == パーミッショングループ == パーミッションをグループ化してロール (''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 }}} グループのメンバーは {{{permission list}}} を引数なしで起動すると見ることができます; 出力される結果にはグループのメンバが含まれているでしょう。グループ名には小文字を使ってください。大文字は権限名のために予約されています。 == パーミッションを削除する == パーミッションは 'remove' コマンドを使用して削除します。例: このコマンドは、ユーザ ''bob'' から レポート権限を削除します: {{{ $ trac-admin /path/to/projenv permission remove bob REPORT_DELETE }}} `permission add` と同様に、このコマンドは複数の権限名を扱うことができます。 特定のユーザからすべての権限を削除することもできます: {{{ $ trac-admin /path/to/projenv permission remove bob * }}} または、すべてのユーザからある権限を削除することもできます: {{{ $ trac-admin /path/to/projenv permission remove * REPORT_ADMIN }}} == デフォルトのパーミッション == 特別なユーザ ''anonymous'' に権限を付与することで、未ログイン状態の匿名ユーザに権限を付与することができます。 同様に、特別なユーザ ''authenticated'' に権限を付与することで、 (HTTP認証に登録された) 全登録ユーザに権限を一律に設定することができます。 ---- See also: TracAdmin, TracGuide and [http://trac.edgewall.org/wiki/FineGrainedPermissions FineGrainedPermissions]