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 の権限を不特定多数に渡すと、意図せず権限昇格させてしまう危険性があるため特に注意が必要です。
アクセス範囲の解説については別途行います。