「代替」ユーザー名、それともエイリアス?

これが最良のカテゴリかどうかはわかりません。もし違うなら申し訳ありません。

私たちのユーザーは、これまで見たことのないような少し変わったリクエストを持っています。基本的には、書き込みコンテストを実施できるように特定のカテゴリを設けたいそうです。トピックに投稿する際に自動的に使用される「エイリアス」または「代替」ユーザー名を作成し、ある時点でそれらの代替ユーザー名が「アンマスク」されて、特定のトリガー(手動、または特定の日時)によって元の「親」ユーザー名が明らかになるようにしたいと考えています。管理者にはユーザーになりすます機能(ある意味で)があり、システムは自動的に匿名のユーザー名を作成できるため、少なくともこの種の機能へのヒントがあるように思えます。ユーザーは匿名モードを選択できますが、「別の」ユーザー名として投稿することを選択するのはどうでしょうか?

なぜユーザーは新しい代替アカウントを登録できないのでしょうか?わかりません。私も同じことを聞きました。彼らが私に尋ねたことを、皆さんに聞いているだけです。彼らは、各コンテストでコンテスト期間中、異なるユーザーとして投稿する必要があるため、新しい代替アカウントを登録するという追加の手間を面倒だと考えているようです。複数のログインに対応したくないのです。:man_shrugging:

「いいね!」 1

この場合、匿名モードが役立つかもしれません。これは自動ではありませんが、ユーザーはログアウトせずに簡単に匿名の別アカウントに切り替えることができます。

他の機能は貴サイトの用途に非常に特化したもののように聞こえるため、実装する可能性は低いでしょう。カスタムプラグインが必要になります。

「いいね!」 4

はい、匿名モードについては認識しています。しかし、ユーザーはこのオプションを却下しました。彼らは特定のカテゴリに入り、そのカテゴリ内で投稿されたすべての投稿が自動的に自分の「偽名」または代替ユーザー名として表示されることを望んでいます。彼らは、面白い名前などを考案するのが好きなので、これらの偽名を作成できるようにしたいと考えています。

この機能を実現するロジックはコードベースのどこかにあるようですが、どこにあるかはわかりません。Discourse 内でユーザー名を作成する部分を見つけ、それをプロフィール設定のオプションとして公開し、偽名を定義できるようにする必要があると考えています(名前やハンドルを入力できるのと同様に)。そして、特定のカテゴリにいる間、投稿されたすべての投稿がこの偽名によって投稿されたものとして表示されるようにします。

「いいね!」 1

回避策として、「匿名アカウント」に「フルネーム」を入力できるようにする方法があります。「anon123」はおそらくニックネームでしょう。設定画面などで変更可能な「フルネーム」を追加できれば、ほぼ必要なことが実現できます。そのためには、チームを説得するか、誰かに(プラグインなどで)対応してもらう必要があります。

あるいは、もっとシンプルな方法もあります。ユーザーにはすでにアイデアがあるはずです。しかし、彼らが「投稿内で署名として名前を使用する」または「投稿の冒頭に名前を記載する」ことで、匿名モードをそのまま活用できることを納得させられれば、現状の匿名モードでも十分機能します。

「いいね!」 1

JavaScriptの中身を覗いて不正ができることを気にしないのであれば、テーマコンポーネントを使ってこの処理を実現することも理論上は可能です。ゲーム開始時にそのトピック内のユーザー名関連の表示を非表示にするだけで済みます。ただし、JSONの読み込みデータをチェックすれば、誰が誰かわかってしまう可能性はあります。

「いいね!」 1

アカウントの期限が切れるまで、そして新しいアカウントが作成されるまでです。ユーザーが匿名アカウントを永続的に維持できるようにする設定が用意されています。

「いいね!」 2

はい、それで問題ありません。チートの心配も不要です。どうやって実現するつもりですか?

「いいね!」 1

例えば、以下のようにします:

.category-support .topic-meta-data {
    display: none;
}

これでユーザー名の部分が非表示になります。アバターを非表示にするには、さらに作業が必要です。

「いいね!」 1

ああ、なるほど。でも、それではユーザーが独自のエイリアスを作成できるようにするという問題は解決しませんね。

「いいね!」 3

いいえ、これでは公開されるまで全員が匿名になってしまいます。

ユーザーに別の人格を与えるには、もう少し複雑になります。カスタムユーザーフィールドを使って、そこに挿入できるようにするしかないかもしれません。あるいは、プラグインが必要になるかもしれません。

「いいね!」 2

実装方法としては、Real Name が実装されているようにフィールドを作成し、投稿時にはその要素以外を非表示にするのが良いかもしれません。ただし、この動作を有効にするカテゴリを制御できるように、プラグインとして有効化する必要があるはずです。

編集:いや、CSS を使って(エイリアス以外を非表示に)実装できるかもしれません。

編集2:私のユーザーはこの案を却下しました。名前をクリックするとユーザープロフィールに移動し、他の要素も表示されてしまうため、匿名性が完全に保たれないからです。そのため、彼らはより厳格な匿名化を求めています。

「いいね!」 2

@dmitry_fedyuk これについてのご意見はありますか?あなたが Real Name プラグインを作成した際、かなり近いところまで到達していたようです。

「いいね!」 1

現在の匿名モードの実装では、ユーザーがプロフィール名を変更できる場合、これで機能するはずです。しかし、匿名モードに入るとプロフィール名を変更できないようです。この問題を解決する方法をご存知の方はいらっしゃいますか?

編集:
わかりました。匿名ユーザーは以前はこれを変更できましたが、ここで「修正」されたようです:

変更可能なローカル設定やファイルはどこかにありますか?'user_guardian.rb’というファイルを検索すると、Docker 関連のものが多数ヒットします:

leigh@ip-10-0-1-36:/var/discourse$ sudo find / -name user_guardian.rb 
/var/lib/docker/overlay2/f62c3c9258dac2925fbc591af67f3bcd3518fb96e668a3ffc94e7fd4fca35f39/diff/var/www/discourse/lib/guardian/user_guardian.rb
/var/lib/docker/overlay2/563d960aacb7f28cec7c4b9886236f8f247591d5f73d5f92e265f9d77f2a5445/diff/var/www/discourse/lib/guardian/user_guardian.rb
/var/lib/docker/overlay2/ecc385f4fb621a8a3c3008a351c217b5a91ec420b80db237c8c14ba2e241d038/diff/var/www/discourse/lib/guardian/user_guardian.rb
/var/lib/docker/overlay2/eeb535fc00ee34dcc9f7e4fb4047e7d8a23141ac4c8f6468cdbdbf3d14d3a1ad/diff/var/www/discourse/lib/guardian/user_guardian.rb
/var/lib/docker/overlay2/bb114e9baa39415ec62c47e933c8eab85c1e278d79f072949584abfd0040f45a/diff/var/www/discourse/lib/guardian/user_guardian.rb
/var/lib/docker/overlay2/673e87a4d858d683f27c06edaf729bca82e6e042e0318bb15190fb330f4d8031/diff/var/www/discourse/lib/guardian/user_guardian.rb
/var/lib/docker/overlay2/e1b2c1576c7154af9291434dfb8dad195d997cd3aadd5c67ef545096311c7107/diff/var/www/discourse/lib/guardian/user_guardian.rb
/var/lib/docker/overlay2/ea0d7890bdcd81546dcae4353d2f0af63a01f50e2f385db5e624a48602b39879/diff/var/www/discourse/lib/guardian/user_guardian.rb
/var/lib/docker/overlay2/e9ef214eafac6b3a32379100fb36a3698a590390e32cf16c4155ea82cc8d8841/diff/var/www/discourse/lib/guardian/user_guardian.rb
/var/lib/docker/overlay2/d23bb55087cbe07d9f9dc4632fa2525c3c9d1ebb4f51f1b1c4f843bf8dec37b5/diff/var/www/discourse/lib/guardian/user_guardian.rb
/var/lib/docker/overlay2/259256e9a8215361c8d471f64a949958e628edba94d2e6591d7ef8abc75c927a/diff/var/www/discourse/lib/guardian/user_guardian.rb
/var/lib/docker/overlay2/d1411fa7a8680d0cc5d40aa3075c5ac7d5950e82e7dea0a534110190b860e849/merged/var/www/discourse/lib/guardian/user_guardian.rb
/var/lib/docker/overlay2/1234accbd49100b334889bc47b23ac0c64dab34c4985101c3e0e269e823babd7/diff/var/www/discourse/lib/guardian/user_guardian.rb
/var/lib/docker/overlay2/7962d862842f2a8c2925c863a1533d5920db238e160c234de0251d3f9665a5d2/diff/var/www/discourse/lib/guardian/user_guardian.rb
/var/lib/docker/overlay2/dab289af1e1cb737816ca9159f527c32c967b37005b610c9a6a0203ea1c608d8/diff/var/www/discourse/lib/guardian/user_guardian.rb
/var/lib/docker/overlay2/bc09dc89afd8921a5f0d5e5986d912827c73358b570a3c8c3da72fa2b58198b0/diff/var/www/discourse/lib/guardian/user_guardian.rb
/var/lib/docker/overlay2/282f26acb8ef45bdee1d3decfa7e17e4c88aa9072c19aa976e4c33f5d9caad03/diff/var/www/discourse/lib/guardian/user_guardian.rb
/var/lib/docker/overlay2/d5f9c17847317ee6b4a1702946fe4efd9b369385afcdc0deafff2a256c733c8f/diff/var/www/discourse/lib/guardian/user_guardian.rb
/var/lib/docker/overlay2/becf6ebe2a176238f8ab7ae735e6b07e32103d3e9144121c13597e5a3021248c/diff/var/www/discourse/lib/guardian/user_guardian.rb
/var/lib/docker/overlay2/55dc00aca76400b4c6d7642e2c991994da5b98e8abc39d8e4763ce03ee897219/diff/var/www/discourse/lib/guardian/user_guardian.rb
/var/lib/docker/overlay2/f35b9cc8f45c891dfe7f895e60706d6037780498a85c663f4f9ab93126c310ae/diff/var/www/discourse/lib/guardian/user_guardian.rb
/var/lib/docker/overlay2/8af8eca6f96f76652ca557dff3fb98e5644b842d02a650b26aebe2415c839687/diff/var/www/discourse/lib/guardian/user_guardian.rb
/var/lib/docker/overlay2/78b2656a2b932c19c926feb1ae737fe8460e15854bfac6d036e0ec3a2316b38a/diff/var/www/discourse/lib/guardian/user_guardian.rb
/var/lib/docker/overlay2/87b4eff503dba027e92d09544d9dea603fd4bafcf15f7bb08b41ed4a4f4f58e5/diff/var/www/discourse/lib/guardian/user_guardian.rb
/var/lib/docker/overlay2/d12aa1b6fba07aaeb889379338a87644cabd74f31a48d6650834065d9993b7cf/diff/var/www/discourse/lib/guardian/user_guardian.rb
/var/lib/docker/overlay2/742ef3325b4e8768587c1fd4ba6b0c578ed2373a0a29a758bf96cd8165b9f855/diff/var/www/discourse/lib/guardian/user_guardian.rb
/var/lib/docker/overlay2/7d28921013c9077d83b8b92a9181617a4dab4648f5fc4df700afd20642b41332/diff/var/www/discourse/lib/guardian/user_guardian.rb
/var/lib/docker/overlay2/c376b69b3f312c28d6521271c6cb74b120060547aabfbbb1b451df30f82caea5/diff/var/www/discourse/lib/guardian/user_guardian.rb

コアをフォークして自分で変更を加え、独自にインストールするしかないのでしょうか?もっと簡単な方法があるはずです。

理想的には、管理者がオプションをチェックまたはチェックを外して、匿名ユーザーがこれらの値を変更できるかどうかを制御できるようにしたいです。@maja さん、この件についてご意見はありますか?

「いいね!」 1

ユーザーが異なるペルソナを使用したいと思うカテゴリはいくつありますか?

「いいね!」 1

数件ですか?
この目的には匿名モードが機能しますが、「anonymous123」からユーザーが希望する名前にプロフィール名を編集できるようにする方法を特定する必要があります。この変更が行われたコミットを見つけましたが、user_guardian.rb に設定が記述されています。コアをフォークせずにこれを上書きまたは変更する方法がわかりません。理想的には、プラグインでこれを有効にするか、設定項目で対応できることです。

「いいね!」 2