1

AuthzPolicy-plugin を使用して、trac-env のアクセス許可を管理しています。ここで、管理者を除くすべてのユーザーが特定のステータスのチケットを表示できないようにする権限を設定したいと思います。

authzpolicy.conf の次のエントリなど、多くのことを試します。

[ticket:*/status:new]
@administrators = TICKET_VIEW
* =

AuthzPolicy プラグインは、特定のステータス、所有者、またはその他のチケットの権限設定を提供しますか?

ムテラ

4

2 に答える 2

0

Trac のパーミッション システムは、コンポーネント レベルに重点を置いています。コンポーネント全体へのアクセスをオンまたはオフにすることはできますが、そのコンポーネント内のサブコンテンツへのアクセスはできません。

そうは言っても、よりきめ細かいパーミッション システムをエミュレートするプラグインを作成できます。プラグインはIRequestFilter、ロード時にページの URL を実装して検査する必要があります。URL からチケット番号を抽出し、データベースでチケットの詳細を検索し、現在のユーザーがそのページを表示する必要があるかどうかを判断します。ユーザーに権限がない場合、プラグインはリクエストをエラー ページにリダイレクトします。これを行うのはそれほど難しくありません (特定の wiki ページを保護するために以前に行ったことがあります) が、Trac のパーミッション システムから完全に独立した別のパーミッション メカニズムであるため、維持するのが困難です。

于 2012-10-05T23:28:38.673 に答える
0

TracFineGrainedPermissionsは、リソース パスで表される任意のプロパティを使用できます。

リビジョンはそうなので、「John はトランク/src/some/location にある 'somefile' のリビジョン 1 のみへの BROWSER_VIEW および FILE_VIEW アクセス権を持っています」と説明されている例を見つけることができます。

したがって、あなたの質問に対する直接的な答えは「いいえ」です。チケットのステータスによっては同じことはできません。申し訳ありませんが、ステータスに関係なく、すべてのチケットがリソース URL から同じように見えるためです。

最後の手段として、bta によって既に概説されているカスタム ポリシーの実装に頼ることができることに同意します。

于 2012-10-07T19:05:06.427 に答える