ユーザー名が「XXX」のユーザーを削除しましたが、削除されたユーザーと同じユーザー名を持つ他のユーザーのユーザー名を変更しようとしても、変更できません。エラーメッセージとして「Username have to be unique(ユーザー名は一意である必要があります)」が表示されます。
ユーザー名が使用されているか、あるいは完全に削除されたかを確認するにはどうすればよいでしょうか?
よろしくお願いいたします。
ユーザー名が「XXX」のユーザーを削除しましたが、削除されたユーザーと同じユーザー名を持つ他のユーザーのユーザー名を変更しようとしても、変更できません。エラーメッセージとして「Username have to be unique(ユーザー名は一意である必要があります)」が表示されます。
ユーザー名が使用されているか、あるいは完全に削除されたかを確認するにはどうすればよいでしょうか?
よろしくお願いいたします。
管理者画面の「ユーザー」からユーザー名で絞り込むことができます。
または、データエクスプローラー を利用することもできます。
はい、管理者→ユーザーからユーザーを削除しましたが、その後、削除した同じユーザー名を使用できません
次に、data-explorer を使用して、このリクエストを実行してみてください。
SELECT username FROM users WHERE username LIKE '%username%'
手がかりになるかもしれません。
結果がありません。しかし、削除されたユーザーのユーザー名を使用しようとすると、「ユーザー名は一意である必要があります」というメッセージが表示されます。
そのユーザー名が他のどのテーブルにある可能性がありますか?
わかりません。どのようなユーザー名を使おうとしていますか?
もしかしたら予約されたユーザー名かもしれませんが、その場合は別のメッセージが表示されるはずです…
また、以前のユーザーもその名前は選べなかったはずです🤷🏿♂️
以下は、ユーザー名が既に使われているかを確認するコードです:
USERNAME_EXISTS_SQL = <<~SQL
(SELECT users.id AS id, true as is_user FROM users
WHERE users.username_lower = :username)
UNION ALL
(SELECT groups.id, false as is_user FROM groups
WHERE lower(groups.name) = :username)
SQL
どの削除されたユーザーのことですか?
追記:ユーザーの名前をグループと同じ名前に変更しようとすると、「ユーザー名は一意である必要があります」と表示されました。これが原因かもしれません?
この名前のグループは存在しますか?@Canapin の指摘の通り、ユーザーとグループは名前空間を共有しています。
いいえ、同じ名前のグループは持っておりません。
また、削除されたユーザーのユーザー名をダイレクトメッセージで言及できる点も、もう一つの問題です。