继续讨论 如何匿名化单个帖子?:
我刚才试了一下,为该用户创建的匿名用户是 20 个字符的、看起来随机的字母数字组合,开头是 cb426… 我本以为它会是“anonymous99”或“anonymous100”的格式。
这是个 bug 还是我做错了什么?
继续讨论 如何匿名化单个帖子?:
我刚才试了一下,为该用户创建的匿名用户是 20 个字符的、看起来随机的字母数字组合,开头是 cb426… 我本以为它会是“anonymous99”或“anonymous100”的格式。
这是个 bug 还是我做错了什么?
我已经模拟了一个测试用户,然后进入了匿名模式,生成的名称是 anonymousNN 风格的。
您能否在多个账户上复制此行为?
是的,对于我尝试过的另一个用户来说,情况也是一样的(尽管用户名随机不同)。
我正在使用 2.9.0.beta10 (0c38757250)。
我想知道我是否为 TL1+ 启用了匿名模式,并且我试图冒充/匿名化一个 TL0 用户。我稍后会检查。
我已确保“允许匿名发帖”已启用,并且“匿名发帖最低信任级别”设置为 0,创建了一个全新用户,并以该用户身份登录(而非模拟登录),进入匿名模式,创建的用户名是……
所以问题在于它会自动匿名,而不是仅在模拟登录时匿名。我将把此主题的标题从“模拟登录用户时创建的匿名用户不以‘anonymous’开头”更改为更准确的标题。
附注:仍然是 2.9.0.beta10 (0c38757250)
您有多少匿名用户?
We have really weird issue, up until user 100 the username was in this format anonymousxxx e.g. anonymous10, anonymous55, anonymous100 However as soon as we reached over number 100 anonymous user accounts, they are now in this format: 9ab9441ad3316f5d2d35cd4807317cc 01c3b651778b7871a7640511daa8eb8
我认为当时这个问题已经修复了,但可能出现了回归?
大约十几个,加上过去两周左右的四个这样的 20 个随机字符用户。
出现此问题的人创建了一个真实的用户名“Anonymous20”,而下一个匿名用户名应该是“anonymous20”(我不记得实际数字了)。
(然后我重命名了他,并将“anonymous”添加到了用户名中不能使用的单词列表中。)
这可能相关吗?
(然后我重命名了他,并将“匿名”添加到了用户名中不能使用的词列表中。)
这听起来很有希望。我将在我的测试站点上检查一下。![]()
干杯。查看后,我在“保留的用户名”中添加了“anonymous”和“anonymous*”……
我刚刚删除了这两个添加项,一切又正常工作了!感谢您指出我之前看过的帖子,这让我想到了这一点。
但仍然希望阻止用户创建包含“anonymous”一词的帐户,同时仍然让匿名模式正常工作。我想这仍然是一个错误。
罪魁祸首是 anonymous*:
user_name_suggester 在分配名称之前会检查保留的名称,因此添加该名称将是导致问题的原因:![]()
- # frozen_string_literal: true
- require 'user_name_suggester'
- RSpec.describe UserNameSuggester do
- describe '.suggest' do
- before do
- SiteSetting.min_username_length = 3
- SiteSetting.max_username_length = 15
- SiteSetting.reserved_usernames = ''
- end
- it "keeps adding numbers to the username" do
- Fabricate(:user, username: 'sam')
- Fabricate(:user, username: 'sAm1')
- Fabricate(:user, username: 'sam2')
- Fabricate(:user, username: 'sam4')
- expect(UserNameSuggester.suggest('saM')).to eq('saM3')
- end
感谢您的澄清。
也许 Discourse 在创建匿名用户时,检查 reserved usernames 但忽略对“anonymous”一词的禁止会更好。
我希望阻止在用户名中使用“Anonymous”一词,除非是由 Discourse 的匿名模式创建的。
由于上述问题(即阻止人类使用“Anonymous”也阻止了 Discourse 的匿名模式使用它),这原本是不可能的。
但从那以后,这种情况是否有所改变?