DeviseでSign upはさせないけど、ユーザ自身にパスワード変更はさせたい
今日もDevise。
READMEにも書いてある通り、Deviseは機能が複数のmoduleに分かれていて、有効にしたいmoduleを選んでいくわけだが、今回は Registerable
について。
Registerable
を有効にすると、アカウント未所持ユーザが自ら、自分のメールアドレスを入力してアカウント作成をすることができるようになる。いわゆる「サインアップ」という機能を提供してくれる。それと同時に、アカウント保持者向けに、自身のアカウントの削除や、パスワード変更の機能もある。
という便利なmoduleであるところまでは良いのだが、問題は、「サインアップや自身の削除は機能として提供したくないが、自身のパスワード変更機能は提供したい」という場合だ。この場合は、
Registerable
moduleのうち不要な機能を潰すRegisterable
moduleは使わずに、必要な機能のみを自前実装する
の2択を迫られる。今回は1の方法を取ることにする。
続きを読むTerraformでSPFレコードを作る
SPFレコードとは、DNSサーバにTXTレコードとして登録する特殊なフォーマットのこと。メール送信者の認証に用いる。
ご存知の通り、メールをサーバから送信する際、Fromヘッダには自由にメールアドレスを設定することができる(他者のドメインであっても)。これに対し、受信者側が「本当にそのFromに設定されたアドレスのドメインは送信者の持ち物か?」を確認する手段の1つがSPFレコード。例えばGMailサーバはSPFをパスしないとほぼ確実に迷惑メール扱いしてくる。したがって、メールを送信するWebアプリケーションを構築する場合SPFレコードを正しく設定するのはほぼ必須となる。
SPFレコードについてより詳しく知りたい方はこちらを参照して欲しい。
で、今回は、Route53上にTerraformからSPFレコードを設定しようという話。
続きを読むrubocopを0.47系から0.48系に上げたときのメモ
やったことある人はわかると思うが、rubocopを0.47系から0.48系に上げると、新しいcopがいっぱい入っていて、めちゃめちゃ怒られる。ついつい「全部 Enabled: false
にしてしまえ!」と思いたくなるが、コードの品質を守ってくれる味方だと思ってしっかり対応していきたい。
以下、今担当しているプロダクトでrubocop0.48系に上げたときに苦労したり判断したりしたやつリスト。
続きを読むライセンスについて考えよう
たまたま今日、会社のエンジニアじゃないメンバーが、Google App Scriptを使ってSlackを便利にする仕組みを作ったのでブログに書こうぜーみたいな話をしていた(普通に便利だと思うので、記事が公開されるのを楽しみにしていて欲しい)。で、Githubにコードを置いて、エンジニアでコードレビューをしてたので、「ライセンスちゃんと置こう」というアドバイスをしておいた。
僕達ソフトウェアエンジニアは、今や当たり前のようにたくさんの他者の書いたソフトウェアを組み合わせてシステムを組み上げていくわけで、ライセンスについて正しく理解し適正なソフトウェア利用をする必要がある、というのは今更言うまでもなく当然だが、自分が書いたコードを公開するときも大切。
何故かと言うと、ライセンスには免責事項があるから。自分を守るためにも必要なわけだ。
というわけで、ソフトウェアライセンスについて正しい知識を身につけよう。
続きを読む