不确定这是否是最合适的分类,如果不是还请见谅。
我们的用户提出了一个我前所未见的特殊需求。基本上,他们希望设立特定分类,以便在其中举办写作比赛。他们想要创建“别名”或“替代”用户名,这些名称会在他们发帖时自动使用;并在特定时间(通过手动触发或设定特定日期/时间)将这些替代用户名“解绑”,揭示其对应的“主”用户名。我知道管理员具备(以某种方式)冒充用户的能力,系统也能自动创建匿名用户名,因此似乎至少有一些迹象表明系统可能支持此类功能?既然用户可以选择进入匿名模式,那么是否也可以让他们选择以“其他”用户名发帖呢?
为什么用户不能直接注册新的替代账号?我也不知道。我问了同样的问题。我只是在转达他们向我提出的问题。我认为他们认为,每次比赛都需要为不同的用户身份注册一个新的替代账号(因为在整个比赛期间,他们必须用不同的用户身份发帖)这一额外步骤很麻烦。他们不想处理多个登录账户。
1 个赞
匿名模式可能适合这个需求。它并非自动启用,但可以让用户在不登出的情况下,轻松切换到一个匿名备用身份。
其他功能听起来非常贴合您网站的具体用途,因此我们不太可能将其作为通用功能实现。您可能需要开发一个自定义插件。
4 个赞
是的,我知道匿名模式,但用户已经拒绝了这种方案。他们希望进入特定分类后,该分类下的所有帖子都能自动以他们的“化名”或别名用户名发布。他们希望能够创建这些别名,因为他们喜欢起有趣的名字之类的。
看起来实现这一功能的逻辑在代码库的某个地方,只是我不知道具体在哪里。我打算找到 Discourse 中负责创建用户名的部分,并将其作为选项暴露在他们的个人资料设置中,允许他们定义一个化名(类似于他们可以输入姓名或昵称的方式)。这样,当他们在特定分类中发帖时,所有帖子都会显示为由该化名发布。
1 个赞
Mevo
4
一个可行的变通方案是,允许为“匿名账户”输入“全名”。我猜“anon123”只是昵称。如果能在偏好设置中添加一个可修改的全名字段,那基本上就能满足你的需求。你需要说服开发团队实现这一功能,或者看看是否有人能为你开发一个插件。
或者,还有一个更简单的办法:你的用户心里已经有想法了。但如果你能成功说服他们,他们仍然可以选择一个名字,并用它在帖子中署名(在帖子内容内),或者将名字放在帖子开头,那么当前的匿名模式就能达到预期效果。
1 个赞
pfaffman
(Jay Pfaffman)
5
如果你不担心人们会通过查看 JavaScript 代码来作弊,理论上你可以用一个主题组件来实现这个功能。只需在游戏开始时让该组件隐藏话题中的用户名信息即可。不过,人们仍然可以通过查看 JSON 加载数据来分辨出谁是谁。
1 个赞
直到账户的持续时间结束并创建新账户。如果进行了设置,用户就可以永久保留其匿名账户。
2 个赞
pfaffman
(Jay Pfaffman)
8
类似这样:
.category-support .topic-meta-data {
display: none;
}
这将隐藏用户名部分。若要隐藏头像,您还需要进行更多操作。
1 个赞
啊,我明白了。但这并没有解决允许用户创建自己别名的问题。
3 个赞
pfaffman
(Jay Pfaffman)
10
不,这会让所有人直到揭晓前都保持匿名。
若要赋予人们一个替代人格,情况会更复杂。我想你可以使用自定义用户字段,或许能插入他们?或者可能需要一个插件。
2 个赞
我想实现的方式是创建一个字段,就像“真实姓名”的实现方式一样,然后在发帖时隐藏除该元素之外的所有内容?但显然你需要将其作为一个插件启用,以便控制哪些类别启用此行为?
编辑:好吧,其实你可以使用 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
我想我可以 fork 核心代码库,自己进行这些修改,然后自行安装……?肯定有更简单的方法吧?
理想情况下,管理员应该可以通过勾选或取消勾选某个选项来允许或禁止匿名用户更改这些值。@maja 你对这个问题有什么看法吗?
1 个赞
Stephen
(Stephen)
15
您有多少个类别,用户在这些类别中希望使用替代角色?
1 个赞
一小部分?
匿名模式可以满足这个需求,我只需要弄清楚如何让用户将他们的个人资料名称从“anonymous123”修改为他们想要的名字。我找到了更改该设置的提交记录,它位于 user_guardian.rb 的配置中,但我不确定如何在不 fork 核心代码的情况下覆盖或修改它。理想情况下,要么通过插件启用此功能,要么提供一个配置选项。
2 个赞