:::: MENU ::::

Trac0.11にAccessControlPluginを入れる

Pocket

インストール方法

# cd /usr/loca/src/tracplugins
# mkdir accesscontrolplugin-0.11
# svn co http://svn.sourceforge.jp/svnroot/shibuya-trac/plugins/accesscontrolplugin/trunk/0.11/ ./accesscontrolplugin-0.11/
# cd accesscontrolplugin-0.11/
# python setup.py bdist_egg

trac.iniの設定

ユーザ単位ではなくアクションで判断する形で制限している。
以下の例だとWIKI_ACCESS_TESTPAGEというアクションが自動的にできあがるので、適宜パーミッションを付与する。
WIKI_ACCESS_ALLというアクションも追加されていて、これはこのプラグイン用のWIKI_ADMINみたいなもの。
正規表現はページ名を指定可能。

# vi conf/trac.ini
[accesscontrol-wiki]
control_pages = testpage
testpage.action = WIKI_VIEW,WIKI_MODIFY
testpage.regex = testpage.*,dumm.

[trac]
permission_policies = WikiPermissionPolicy, TicketPermissionPolicy, DefaultPermissionPolicy, LegacyAttachmentPolicy

□設定例
# 閲覧させたくない(当然編集も削除もできない)
testpage.action = WIKI_VIEW

# 編集させたくない
testpage.action = WIKI_MODIFY

# 削除させたくない
testpage.action = WIKI_DELETE

エラーページがちょっとわかりにくい

TestPage に対して、この操作を行うには WIKI_VIEW 権限が必要です

WIKI_ACCESS_TESTPAGE権限のないユーザでアクセスすると、上記のようなエラーメッセージが出てくる。
ほかのページが見れるからWIKI_VIEW権限はついているはずなのに、なんでWIKI_VIEW権限が必要ってでるの?って、
このプラグインが適応されていることを知らない人は思ってしまうのではないかと。

Pocket


So, what do you think ?