2011年4月に読んだ本Trac でもっと細かい粒度のアクセス権設定をする

2011年04月17日

Trac でユーザ定義の「権限」を追加する

ExtraPermissionsProvider

最近、仕事で Trac サーバを立ち上げる機会があったので、コネタを一つ。ユーザ定義の「権限(TICKET_VIEW などの類)」の追加の仕方。

この手の BTSを会社で使おうと思うと、チケットをアサインされた人がチケットをクローズした後に、プロジェクト・マネージャが「クローズを承認」するというワークフローにしたくなる。ワークフローのカスタマイズ自体は Trac 0.11 くらいからすでにかなり柔軟にできるのだが、しかし、マネージャ用に新しく「承認権限」を作りたいと思うと、結構なコード量のプラグインを入れたりして、なかなか面倒だった。

Trac 0.12 では ExtraPermissionProvider というコンポーネントがデフォルトで組み込まれており、ユーザ権限を自由に追加できる。コンポーネントはデフォルトで無効になっているため、trac.ini の [component] セクションに

[component]
tracopt.perm.config_perm_provider.extrapermissionsprovider = enabled
と書く。または AdminModule が入っていれば、ウェブの管理画面、プラグインのページから、Trac 0.12.x 内にある上のコンポーネントを有効にする。

あとは、trac.ini の [extra-permissions] セクションにに追加したい権限を記述するだけ。

[extra-permissions]
# TICKET_REIVIEW 権限を追加。
# 既存の TICKET_ADMIN 権限が TICKET_REVIEW 権限を含むようになる。
ticket_admin = ticket_review
# 上のマニュアルにある例。EXTRA_VIEW、MODIFY、DELETE の3権限を作った上で、
# EXTRA_ADMIN という 3権限を含む権限を新たに作る
extra_admin = extra_view, extra_modify, extra_delete
# 上のマニュアルにある例。ADMIN 系のメタ権限を作りたくない場合は、
# 等号の左側を '_' ではじめる。
_perms = extra_view, extra_modify


heitatta at 02:16│Comments(0)TrackBack(0) Programming 

トラックバックURL

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔   
 
 
 
2011年4月に読んだ本Trac でもっと細かい粒度のアクセス権設定をする