diff options
Diffstat (limited to 'core/user/user.go')
-rw-r--r-- | core/user/user.go | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/core/user/user.go b/core/user/user.go index 3216828ce..218cb3d18 100644 --- a/core/user/user.go +++ b/core/user/user.go @@ -17,6 +17,7 @@ import ( var _datastore *data.Datastore const moderatorScopeKey = "MODERATOR" +const minSuggestedUsernamePoolLength = 10 // User represents a single chat user. type User struct { @@ -48,7 +49,7 @@ func SetupUsers() { } // CreateAnonymousUser will create a new anonymous user with the provided display name. -func CreateAnonymousUser(username string) (*User, error) { +func CreateAnonymousUser(displayName string) (*User, error) { id := shortid.MustGenerate() accessToken, err := utils.GenerateAccessToken() if err != nil { @@ -56,9 +57,15 @@ func CreateAnonymousUser(username string) (*User, error) { return nil, err } - displayName := username if displayName == "" { - displayName = utils.GeneratePhrase() + suggestedUsernamesList := data.GetSuggestedUsernamesList() + + if len(suggestedUsernamesList) >= minSuggestedUsernamePoolLength { + index := utils.RandomIndex(len(suggestedUsernamesList)) + displayName = suggestedUsernamesList[index] + } else { + displayName = utils.GeneratePhrase() + } } displayColor := utils.GenerateRandomDisplayColor() @@ -287,8 +294,8 @@ func GetModeratorUsers() []*User { substr(rest, instr(rest, ',')+1) FROM split WHERE rest <> '') - SELECT id, display_name, scopes, display_color, created_at, disabled_at, previous_names, namechanged_at, scope - FROM split + SELECT id, display_name, scopes, display_color, created_at, disabled_at, previous_names, namechanged_at, scope + FROM split WHERE scope <> '' ORDER BY created_at ) AS token WHERE token.scope = ?` |