ゲストアカウントで匿名トゥートできるマストドンインスタンスを作った

md.distsn.org というマストドンインスタンスを運営している。ソースコードからビルドしているので、新機能を作って導入することができる。これまで、ユーザー数偽装メールアドレス不要でユーザー登録をやってきた。今度はゲストアカウントをやっていこう。

ゲストアカウントを運用するには以下が必要である。

  • メールアドレスを変更できない。
  • パスワードを変更できない。
  • アカウントを削除できない。
  • 2段階認証を有効にできない。
  • IPアドレスを取得できない。

まず app/model/account.rb に guest? メソッドを生やす。あとは各所の haml で機能を殺せばよい。メールアドレスとパスワードの変更を殺すアカウントの削除を殺す2段階認証を殺すIPアドレスの表示を殺す。完成。

本当はクライアントサイドではなくサーバーサイドで機能を止める必要がある。まあ手を抜くところは抜いてやっていこう。

guest? メソッドの定義は username == guest || username.include?(__) なので、ユーザー名が guest か、またはアンダーバー2個を含むならば、ゲストアカウントとして動作する。そのため、クソリプ専用ゲストアカウントのようなゲストアカウントを無限に生やすことができる。

広告

投稿者: Hakaba Hitoyo

墓場一夜