Do You PHP はてブロ

Do You PHPはてなからはてブロに移動しました

Trac-0.11のワークフローでTICKET_REVIEW権限を使う

先日導入したTrac-0.11b1の続き。


また、trac-0.11b1/sample-plugins/workflow/enterprise-review-workflow.iniがかなり参考になると思います。

と書いたは良いんですが、iniファイルの中にある「TICKET_REVIEW」なるアクションが定義されていて、「どうやって有効にするのかなぁ」と思っていたんですが、単にsample-plugins/workflow/CodeReview.pyを[プロジェクトディレクトリ]/pluginsにコピーすれば良かったんですね。Pythonは完全にアウェーなので、何か難しく考えすぎてました。。。

$ sudo cp -p trac-0.11b1/sample-plugins/workflow/CodeReview.py trac/plugins/
$ trac-admin /path/to/trac_project permission list

User       Action
--------------------------
anonymous  BROWSER_VIEW
anonymous  CHANGESET_VIEW
anonymous  FILE_VIEW
anonymous  LOG_VIEW
anonymous  MILESTONE_VIEW
anonymous  REPORT_SQL_VIEW
anonymous  REPORT_VIEW
anonymous  ROADMAP_VIEW
anonymous  SEARCH_VIEW
anonymous  TICKET_CREATE
anonymous  TICKET_MODIFY
anonymous  TICKET_VIEW
anonymous  TIMELINE_VIEW
anonymous  WIKI_CREATE
anonymous  WIKI_MODIFY
anonymous  WIKI_VIEW


Available actions:
 CONFIG_VIEW, EMAIL_VIEW, MILESTONE_ADMIN, MILESTONE_CREATE,
 MILESTONE_DELETE, MILESTONE_MODIFY, MILESTONE_VIEW, PERMISSION_ADMIN,
 PERMISSION_GRANT, PERMISSION_REVOKE, REPORT_ADMIN, REPORT_CREATE,
 REPORT_DELETE, REPORT_MODIFY, REPORT_SQL_VIEW, REPORT_VIEW, ROADMAP_ADMIN,
 ROADMAP_VIEW, SEARCH_VIEW, TICKET_ADMIN, TICKET_APPEND, TICKET_CHGPROP,
 TICKET_CREATE, TICKET_EDIT_CC, TICKET_MODIFY, TICKET_REVIEW, TICKET_VIEW,
 TIMELINE_VIEW, TRAC_ADMIN, WIKI_ADMIN, WIKI_CREATE, WIKI_DELETE,
 WIKI_MODIFY, WIKI_VIEW

$ 

無事にTICKET_REVIEWが現れました。ということで、trac.iniを

[ticket-workflow]
accept = new -> assigned
accept.operations = set_owner_to_self
accept.permissions = TICKET_MODIFY
leave = * -> *
leave.default = 1
leave.operations = leave_status
reassign = new,assigned,reopened,in_work -> assigned
reassign.operations = set_owner
reassign.permissions = TICKET_MODIFY
start = assigned -> in_work
start.operations = set_owner_to_self
start.permissions = TICKET_MODIFY
reopen = verify,closed -> reopened
reopen.operations = del_resolution
reopen.permissions = TICKET_CREATE
resolve = new,assigned,reopened,in_work -> verify
resolve.operations = set_resolution
resolve.permissions = TICKET_MODIFY
verified = verify -> closed
verified.permissions = TICKET_REVIEW

として、TICKET_REVIEWアクションを持つユーザーを追加しました。これで、このユーザーでないとチケットをclosedできないようにできました:-)