ロールの利用を制限する

ユーザーとプロジェクトのアクセスレベルによってプロジェクトへのアクセス制限機能を拡張する」の記事で、ユーザーとプロジェクトにアクセスレベルを設けて、アクセスを制御する機能を紹介した。
今回は、ロールにもアクセスレベルを設けて、
  1. ユーザーが使えるロール(プロジェクト設定のメンバーでアサインできるロール)
  2. プロジェクトで有効な(利用できる)ロール
を設定できる機能を追加してみた。 なお、対象のRedmineは、2.5.1。 また、「ユーザーとプロジェクトのアクセスレベルによってプロジェクトへのアクセス制限機能を拡張する」が適用されている(ユーザーのアクセスレベル属性が追加されている)ことが前提。

<機能>

  1. ユーザーが使えるロールを設定する機能
    ユーザーへプロジェクト設定「メンバーの管理」権限を与える運用で、そのユーザーに利用させたくないロール(そのユーザーよりも強力なロール)がある場合に、ユーザーが利用できるロールをユーザーのアクセスレベルに応じて制限できるようにする機能。
    ユーザー個別に設定したアクセスレベルとロール個別に設定したアクセスレベルを比較して、ユーザーレベル未満のロールレベルのロールだけを使えるようにする仕組み。
    もちろん高レベルのロールを作らなければ良いのだが、それができない状況で「メンバーの管理」権限を一般ユーザーに任せる場合に有用となる。
  2. プロジェクトで有効なロールを設定する機能
    プロジェクトによって利用させたい/利用させたくないロールが別れる場合に、上記1だけでは対応できないため、プロジェクト毎に利用するロールを決めてしまおうという機能。
    プロジェクト毎に使えるロールを決めてしまうので、単純にプロジェクトで使わないロールを予め外すていおくことで、誤ったロールの使い方も防グことができる。

<Redmineでの設定>

  1. ユーザーが使えるロールを設定する
    ・ユーザーのアクセスレベルを設定する
    管理→ユーザー→ログイン でユーザー属性編集画面を開き、「アクセスレベル」を0~9で設定する。
    利用を制限したいユーザーを低めに設定する。
    ・ロールのアクセスレベルを設定する
    管理→ロールと権限→ロール でロール属性編集画面を開、「アクセスレベル」を0~9で設定する。
    利用を制限したいロールを高めに設定する。

    ログインユーザーのアクセスレベルより高いアクセスレベルのロールは、どんなに頑張っても、メンバー設定で割り当てることができなくなる。
  2. プロジェクトで有効なロールを設定する
    ・管理→ロールと権限 で、「ロールの選択」権限を、プロジェクトで有効なロールを設定することができるロールに付与する。
    (もちろん、メンバーの管理を移管するユーザーに割り当てるロールには、「ロールの選択」権限は付与しない。)
    ・管理→設定→「新規プロジェクトにおいてデフォルトで有効になるロール」 で新規プロジェクト作成時のデフォルト値を設定する。
    ・プロジェクトメニューの「設定」の「ロール」で、そのプロジェクトで利用するロールのチェックをONにする。

    設定したプロジェクトのメンバー設定画面では、特定のロールしか利用できなくなる。

<差分コード>

  1. ユーザーが使えるロールを設定する機能
    Github
    (DBのmigrateが必要。)
  2. プロジェクトで有効なロールを設定する機能
    Github

0 件のコメント:

コメントを投稿