Bugzillaユーザー権限設定メモ
Bugzillaにおけるユーザーは、「Bugzillaに対してどのようなユーザー権限をもつか」(ユーザー権限)と「どのプロダクトに対してどのような権限をもつか」(アクセス範囲)というふたつの軸で定義する必要があります。どちらの軸を定義するにしてもグループの機能を使うのでちょっとわかりづらいですね。
今回はユーザー権限の設定について解説します。
ユーザー権限の解説
ユーザー権限の実体は、システム型をもつグループがそれに当たります。
以下に具体的な権限の内容について記します。
tweakparams パラメーターおよび既定のユーザー設定のカスタマイズ editusers すべてのユーザーのユーザー権限の変更 creategroups グループの設定 admin カスタムフィールド、フィールド値、ワークフロー bz_quip_moderators ヘッドラインの承認 bz_sudoers 他ユーザーとしてふるまう bz_sudo_protect 他ユーザーが自分としてふるまうのを防ぐ editclassifications クラス分類の設定 bz_canusewhineatothers 自分以外に対するリマインダーの利用 bz_canusewhines リマインダーの利用 canconfirm Bugの有効性確認 editcomponents プロダクトの設定、フラグの設定 editkeywords キーワードの作成 editbugs Bugの報告
ユーザー権限設定のモデルケース
さて、どのような権限が用意されているかがかわったところで、実際の運用のことを考えてみたいと思います。ここではモデルケースとして、運用上のユーザー権限が以下の5つあるものとして設定してみます。
- 主管理者: Bugzillaのパラメーターをいじることのできる特権的管理者
- 管理者: Bugzillaのパラメーターはいじれないが、それ以外は何でもできる管理者
- プロダクト管理者: 各プロダクトのマネージャー・リーダー
- ユーザー: 管理者でない、ごくごく一般の利用者、バグ報告と、自身に対するリマインダーの作成ができる
- ログインしていない人: 利用者でない可能性があるので、Bugzillaに対して何もできない
この5つをグループの設定で実現するには以下のよう設定します。
- パラメーター requirelogin を有効にする。
- グループ editbugs, bz_canusewhines がすべてのユーザーを含むようにする。 (正規表現 = .* )
- 主管理者、プロダクト管理者に相当するグループを作成する。(root, productman)
- グループの継承関係を以下の通りとする。
root (主管理者) tweakparams パラメーター、既定のユーザー設定 editusers すべてのユーザーのユーザー権限の変更 creategroups グループの設定 admin (管理者) カスタムフィールド、フィールド値、ワークフロー bz_quip_moderators ヘッドラインの承認 bz_sudoers 他ユーザーとしてふるまう bz_sudo_protect 他ユーザーが自分としてふるまうのを防ぐ editclassifications クラス分類の設定 productman (プロダクト管理者) bz_canusewhineatothers 自分以外に対するリマインダーの利用 canconfirm Bugの有効性確認 editcomponents プロダクトの設定、フラグの設定 editkeywords キーワード
editusers, creategroups の権限を不特定多数に渡すと、意図せず権限昇格させてしまう危険性があるため特に注意が必要です。
アクセス範囲の解説については別途行います。
Bugリストに表示するBugzilla既定の項目を定義する
Bugリストに表示するBugzilla既定の項目はテンプレートでは定義できないので、下記のファイルを編集します。
/var/www/html/bugzilla/Bugzilla/Constants.pm
下記の箇所を探します。
# The default list of columns for buglist.cgi use constant DEFAULT_COLUMN_LIST => ( "product", "component", "assigned_to", "bug_status", "resolution", "short_desc", "changeddate" );
たとえば下記のように変更します。
# The default list of columns for buglist.cgi use constant DEFAULT_COLUMN_LIST => ( "bug_id", "opendate", "changeddate", "priority", "bug_severity", "bug_status", "resolution", "short_desc" );
IEのクロスブラウザーテストにmodern.IEを利用する
IE向けのWebアプリケーションをテストする場合、F12開発ツールのブラウザーモードと
ドキュメントモードを切り替えてテストするだけでは不十分なことがあります。
かといって、いまさら Windows Vista とかのライセンスを用意するとかは勘弁してほしいところ。
そこで、マイクロソフトが無償で提供してくれている modern.IE の仮想マシンを利用します。
Virtual Machine (VM), Windows Virtual PC & Browserstack | Modern.IE
これは端的に言うと、IEの動作検証をするためのWindowsのVMイメージファイルです。
各OSごとに複数のバージョンのIEが導入された状態のVMイメージファイルが提供されています。
IEを利用する以外の用途のためには提供されていないので、リモートデスクトップでつながらない、
Windows Updateが無効になっているなどの特徴があります。
ライセンスは初回起動後一定期間で切れますが、コマンドを実行することで延長することができます。
詳しくは起動後のデスクトップの背景を参照してください。
一部のOSではライセンスを延長する手段が提供されていませんが、
ダウンロードしたVMイメージファイルを:消さずにとっておけばOK。
StatSVN/StatCVS 使い方メモ
StatSVN
StatSVNのダウンロード
SVNのログをファイルに出力する
YYYY-MM-DDに6日前の日付を指定すれば、直近1週間分の解析ができる。XML形式で出力。
svn log -r {YYYY-MM-DD}:HEAD --xml -v> <ログファイル名>
解析実行
java -jar statsvn.jar m-filter.log c:\src\sample -output-dir c:\temp -title "Sample Product" -include "**/*.h;**/*.c;**/*.cpp;**/*.hpp;**/*.sh" -exclude "projects/jogai/**;projects/src/gaibu/**"
実行すると、PuTTYにいろいろ怒られる場合があるが、すべて無視してOK。
出力先ディレクトリは存在しなくても可。
CVSの場合
StatCVSという同様のツールがある。使い方もほぼ同じ。
http://statcvs.sourceforge.net/
解析実行
java -jar -mx1280m statcvs.jar cvs.log c:\src\sample -output-dir c:\temp -title "Sample Product" -include "**/*.h;**/*.c;**/*.cpp;**/*.hpp;**/*.sh" -exclude "projects/jogai/**;projects/src/gaibu/**"