ユーザーの役割に基づいて特定の変更をブロックする方法はありますか?
たとえば、開発者がチケットのステータスを「開発中」から「クローズ済み」に変更できるようにしたくありません。「テスト」を通過し、テストロールを持つユーザーのみに「テスト」を「クローズ」できるようにしたい。
これは、Trac ワークフローに対する非常に簡単な調整です。オプションのテストを追加するためのドキュメントを以下に引用します。
以下を trac.ini の [ticket-workflow] セクションに追加すると、オプションのテストが可能になります。チケットが新規、承認済み、または needs_work ステータスの場合、テスト用に送信することを選択できます。テスト ステータスの場合、ユーザーはそれを拒否して needs_work に返送するか、テストに合格してクローズドに送信するかを選択できます。彼らがそれを受け入れると、自動的にクローズ済みとしてマークされ、解決策は固定に設定されます。古いワークフローがすべて残っているため、チケットはこのセクション全体をスキップできます。
testing = new,accepted,needs_work,assigned,reopened -> testing
testing.name = Submit to reporter for testing
testing.permissions = TICKET_MODIFY
reject = testing -> needs_work
reject.name = Failed testing, return to developer
pass = testing -> closed
pass.name = Passes Testing
pass.operations = set_resolution
pass.set_resolution = fixed
現在、すべてのチケットは「合格」状態の前に「テスト」状態を通過する必要があります。
特定のテスターのみがチケットを「testing」から「pass」に変更できるようにするには、TICKET_PASS という新しいパーミッションを作成し (trac 管理者は Web UI でこれを行うことができます)、trac のワークフロー セクションに以下を追加します。 .ini:
pass.permissions = TICKET_PASS
私見ですが、チケットが合格する前にテストを通過することを要求するだけで十分です。合理的な開発者なら誰でも、品質管理に合格しない限り、チケットを「テスト中」状態から「合格」状態に移行してはならないことを知っています。また、彼らの行動の履歴があるため、チケットを不適切に「合格」とマークしたことで非難される可能性があります。特権を制限することは、役立つ以上に邪魔になる (trac 管理者の気を散らす) ことになるでしょう。
[注: 担当者が低すぎるため、ドキュメントへのハイパーリンクを 1 つを除いてすべて削除する必要がありました。はぁ。]