Redmine上の不要なユーザをどう扱うか
長い間運用していると、メンバーも入れ替わります。新しい環境に移り、アカウント自体が実質無効になっていることもあります。
このあたり、みなさんどういうルール・運用をしているのか、気になるところではありますね。
アカウントの無効化措置については、いくつかパターンがあると思います。
一番強硬そうな、「削除」措置。
チケットの場合、削除すると、データが物理削除される形になります。アカウントも削除すると、やはり物理削除になります。
ですが、実際に試してみたら、影響はそれだけじゃありませんでした。
結論から言いますと、『削除』はしないほうが安全です。現実的な対応方法は、こんな感じ?
実質無効なアカウントなのに、うっかり担当者にしていしてしまい、そのチケットが放置されるのは困りますよね。
こちらは、ただいま自作プラグインで、ロックされたメンバは表示しないように調整しています。
また、アクティブなチケットのウォッチャーに入っていて、メール送信設定が有効な場合だと、ロックされていてもメールが送信されてしまいます。
ロックの際にメール通知も無効化されるといいのですが、現状そういう仕組みになっていないようです。
ただ、ロック&プロジェクトから除籍の場合、過去にその人が「作成者」「担当者」であったチケットを探そうとしても、チケットの一覧のフィルタ利用時、メンバーのプルダウンに出てきてくれません。ユーザID直接指定でなんとか取り出しはできますが、UI的にも改善してほしいな、と思っているところです。
さて、削除がNGな理由。
チケット上は、そのユーザが関わったチケット(作成、注記の追記、Wikiへの記述など全て)が、『匿名ユーザ』として表記されます。ここまでは、想定の範囲かと思いますが、さらに下記の現象が発生します。
チケット本体のレコードのAuthor_id (作成者のId) が、 全て『匿名ユーザのid』 に置き換わります。複数名まとめてユーザを削除すると、それらが全て匿名ユーザ名義のデータになってしまいます。
また、チケット以外にも、そのユーザが作成したニュースやWiki、添付アイル、フォーラムのメッセージが、『匿名ユーザid』に書き換えられてしまいます。
(User.rb –> def remove_references_before_destroyで処理)
プログラムの調整をし、アカウント削除時にテーブルの書き換えを行わないようにした場合、チケットの表示は可能ですが、この場合、作者名がブランクになります。
ですが、こんどは削除済みのユーザIdをチケットの作者として保持し、作者名がブランクになっていた場合は、チケットの更新ができません 。
ほかにもいろいろ影響がありそうですが、ユーザをうっかり「削除」した場合、単純に「ユーザ」テーブルをリストアするだけでは元に戻せない状況になりますので、削除しないのが無難ですね。
一方、プラグインに関しては、また別の話。
Redmineの本体と同じようにユーザを削除するタイミングで関連テーブルのデータを修正する仕組みになっているかどうかは個別ケースです。
少なくとも、わたしの作ったプラグインは、ユーザが削除された時のケアはしていないので、テストの中にユーザが削除された場合どうなるか、というのを組み込む必要があるかもしれませんね….。
こちらの記事を読まれて、『ちょっと違うよ!』『うちはこうしてるよ!』などのご指摘、ご意見などいただけると幸いです。
このあたり、みなさんどういうルール・運用をしているのか、気になるところではありますね。
アカウントの無効化措置については、いくつかパターンがあると思います。
- パスワードをランダムリセットし、実質ログインできない形でアカウントは有効なままにしておく。
- ロールを剥奪、プロジェクトのメンバーからアサインをはずす。(アカウント有効・権限のみ取り外す)
- アカウントを無効化する。
- アカウントを削除する。
削除 or ロック?
一番強硬そうな、「削除」措置。
チケットの場合、削除すると、データが物理削除される形になります。アカウントも削除すると、やはり物理削除になります。
ですが、実際に試してみたら、影響はそれだけじゃありませんでした。
結論から言いますと、『削除』はしないほうが安全です。現実的な対応方法は、こんな感じ?
- アカウントをロックする。
- ロックした上で、そのアカウントのメール通知設定を『通知しない』に設定する。
- 担当者になる可能性がまず無い場合は、プロジェクトから除籍する。
実質無効なアカウントなのに、うっかり担当者にしていしてしまい、そのチケットが放置されるのは困りますよね。
こちらは、ただいま自作プラグインで、ロックされたメンバは表示しないように調整しています。
また、アクティブなチケットのウォッチャーに入っていて、メール送信設定が有効な場合だと、ロックされていてもメールが送信されてしまいます。
ロックの際にメール通知も無効化されるといいのですが、現状そういう仕組みになっていないようです。
ただ、ロック&プロジェクトから除籍の場合、過去にその人が「作成者」「担当者」であったチケットを探そうとしても、チケットの一覧のフィルタ利用時、メンバーのプルダウンに出てきてくれません。ユーザID直接指定でなんとか取り出しはできますが、UI的にも改善してほしいな、と思っているところです。
削除がNG な理由
さて、削除がNGな理由。
チケット上は、そのユーザが関わったチケット(作成、注記の追記、Wikiへの記述など全て)が、『匿名ユーザ』として表記されます。ここまでは、想定の範囲かと思いますが、さらに下記の現象が発生します。
チケット本体のレコードのAuthor_id (作成者のId) が、 全て『匿名ユーザのid』 に置き換わります。複数名まとめてユーザを削除すると、それらが全て匿名ユーザ名義のデータになってしまいます。
また、チケット以外にも、そのユーザが作成したニュースやWiki、添付アイル、フォーラムのメッセージが、『匿名ユーザid』に書き換えられてしまいます。
(User.rb –> def remove_references_before_destroyで処理)
プログラムの調整をし、アカウント削除時にテーブルの書き換えを行わないようにした場合、チケットの表示は可能ですが、この場合、作者名がブランクになります。
ですが、こんどは削除済みのユーザIdをチケットの作者として保持し、作者名がブランクになっていた場合は、チケットの更新ができません 。
ほかにもいろいろ影響がありそうですが、ユーザをうっかり「削除」した場合、単純に「ユーザ」テーブルをリストアするだけでは元に戻せない状況になりますので、削除しないのが無難ですね。
一方、プラグインに関しては、また別の話。
Redmineの本体と同じようにユーザを削除するタイミングで関連テーブルのデータを修正する仕組みになっているかどうかは個別ケースです。
少なくとも、わたしの作ったプラグインは、ユーザが削除された時のケアはしていないので、テストの中にユーザが削除された場合どうなるか、というのを組み込む必要があるかもしれませんね….。
こちらの記事を読まれて、『ちょっと違うよ!』『うちはこうしてるよ!』などのご指摘、ご意見などいただけると幸いです。
[更新履歴]
- 誤字、改行などお見苦しい部分があったので修正しました。
- プラグインの場合についての記載を追加しました。
削除をしない方がよいのは同意です!
返信削除ロックしたら中途半端に表示しないで欲しいですね