新規ユーザー登録時のメールにカスタムメッセージを追加する

新規ユーザー登録時に、対象ユーザーにメールが送信されるが、その内容は最低限の情報となる。
システムの運用や初期設定、利用ガイドのロケーション等々、ユーザーの初期登録時に伝えるべき情報があるが、別で知らせるのも面倒。
そこで、メール送信されるメッセージを予めシステムに登録しておける仕組みを実装してみた。

<機能>

  • 新規ユーザー登録時に、予め登録しておいたメッセージが追加されてメール送信される。

    <設定/準備>

    • データベースのmigrateは不要。(settingsテーブルに1レコードとして保持されるようにした。)
    • 管理 - 設定 - メール通知 の一番下に追加されている設定項目 "Email content on user registration" に、追加するメッセージを記述する。

    <コード変更箇所>

    プロジェクト一覧を表形式にする(フィルタ検索機能付き)

    登録プロジェクトが多いと、トップメニューの「プロジェクト」で表示されるプロジェクト一覧がカオスになる。
    管理メニューのプロジェクト一覧は表示がスッキリしていて、プロジェクト名のフィルター機能もあり、使いやすい。
    そこで、トップメニューのプロジェクト一覧表示を管理メニューのプロジェクトライクに変更してみる。

    <機能>

    • トップメニューのプロジェクトをテーブル形式の一覧にする。
    • 表示するプロジェクトをフィルター(検索)できるようにする。

    <コード変更箇所>

    ウォッチャーとプロジェクト通知設定者のメール宛先設定

    Redmineのチケット登録/更新時のメール宛先について、デフォルトでは、ウォッチャーは「CC」、プロジェクト通知設定者※は「TO」となっている。
    これらを、各々「TO/CC」から選択設定できるようにしたみた。
    チケットのメール通知対象の意味付けを、システムの性格に応じて柔軟に決められるようになる。
    ※プロジェクト通知設定者:「個人設定」で「参加している(選択した)プロジェクトのすべての通知」を設定しているユーザー


    <機能>

    • チケットのウォッチャーやプロジェクト通知設定者のメール宛先を「TO/CC」から選択設定できるようにする機能。

    <Redmineでの設定>

    管理→設定→メール通知 で次の項目を設定する(TO/CCを選択)。
    • チケットのウォッチャーの宛先
    • チケットのプロジェクト通知設定者の宛先

    <Redmine-2.5.1 差分コード>

    • ウォッチャーとプロジェクト通知メールの宛先設定機能
      Github

    ロールの利用を制限する

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

    <機能>

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

    <Redmineでの設定>

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

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

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

    <差分コード>

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