« Trac-Outlook連携を使った朝会の準備 | トップページ | tracのワークフローをExcelの図で作った状態遷移図から作ってみる »

2011年1月22日 (土)

Tracのパーミッションをtrac.iniの設定から追加する簡単なプラグイン

仕事でTracの導入推進をするようになって,私がTracを使い始めた頃を思い出しながら,プラグインをいじくるというのは高い壁なんだなぁと思っています.各プロジェクトごとに違うワークフローの設定のために,プラグインを作ってパーミッションを追加する方法を説明をしてソースを渡しても難しいようです.なので,trac.iniに次のようにカンマ区切りで書いておくと,それをパーミッションに追加する簡単なプラグインを(あるかもしれないけど)作りました.(IAdminPanelProviderを実装してWebで設定できればいいのですがそこまでする必要もないかと)

[permission-config]
permission = TICKET_ASSIGN, TICKET_CLOSE

[components]
permissionconfig.permissionconfig.permissionconfig = enabled

次のような階層で3つのファイルを作ります.

PermConfig

    permissionconfig

        __init__.py

        permissionconfig.py

    setup.py

上から順にpermissionconfig/__init__.py

# -*- coding: utf8 -*-

from permissionconfig import *

次はpermissionconfig/permissionconfig.py

# -*- coding: utf-8 -*-

from trac.core import implements, Component
from trac.perm import IPermissionRequestor

class PermissionConfig(Component):
    implements(IPermissionRequestor)

    def get_permission_actions(self):
        perm = self.config.get( "permission-config", "permission")
        perms = perm.split(',')
        res = []
        for p in perms:
            w = p.strip(' ')
            if w != u"":
                res.append(w)
        return res

次はsetup.py

# -*- coding: utf-8 -*-

from setuptools import find_packages, setup

setup(
    name = 'PermissionConfigPlugin', version = '0.11.1.1',
    packages=find_packages(exclude=['*.tests*']),
    license='BSD',
    entry_points={'trac.plugins': [
            'permissionconfig.permissionconfig = permissionconfig.permissionconfig']}
)

これをビルドしてインストール

たとえば"python setup.py install"とかで使える状態にしてtrac.iniを上のように編集してください.サービスの再起動とか必要かもしれませんが,パーミッションのアクションのところにTICKET_ASSIGN, TICKET_CLOSEが追加されます.これで,ワークフローの状態遷移に権限が必要な場合でも簡単に追加できますよね.

「PermConfig.zip」をダウンロード

|

« Trac-Outlook連携を使った朝会の準備 | トップページ | tracのワークフローをExcelの図で作った状態遷移図から作ってみる »

Trac」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: Tracのパーミッションをtrac.iniの設定から追加する簡単なプラグイン:

» Tracのワークフロープラグインを更新しました。 [いつまでもとりあえず]
Tracのワークフロープラグインを更新しました。変更点は二点です。 1. 次の記 [続きを読む]

受信: 2011年4月16日 (土) 16時10分

« Trac-Outlook連携を使った朝会の準備 | トップページ | tracのワークフローをExcelの図で作った状態遷移図から作ってみる »