Browse Source

Reserve a few user names

These are all names that are used for domain.com/:route routes or projected to be.
tags/v0.9.9
lain 5 years ago
parent
commit
91724d160a
3 changed files with 44 additions and 0 deletions
  1. +29
    -0
      config/config.exs
  2. +1
    -0
      lib/pleroma/user.ex
  3. +14
    -0
      test/user_test.exs

+ 29
- 0
config/config.exs View File

@@ -220,6 +220,35 @@ config :cors_plug,
credentials: true,
headers: ["Authorization", "Content-Type", "Idempotency-Key"]

config :pleroma, Pleroma.User,
restricted_nicknames: [
"main",
"users",
"settings",
"objects",
"activities",
"web",
"registration",
"friend-requests",
"pleroma",
"api",
"tag",
"notice",
"status",
"user-search",
"ostatus_subscribe",
"oauth",
"push",
"relay",
"inbox",
".well-known",
"nodeinfo",
"auth",
"proxy",
"dev",
"internal"
]

# Import environment specific config. This must remain at the bottom
# of this file so it overrides the configuration defined above.
import_config "#{Mix.env()}.exs"

+ 1
- 0
lib/pleroma/user.ex View File

@@ -197,6 +197,7 @@ defmodule Pleroma.User do
|> validate_confirmation(:password)
|> unique_constraint(:email)
|> unique_constraint(:nickname)
|> validate_exclusion(:nickname, Pleroma.Config.get([Pleroma.User, :restricted_nicknames]))
|> validate_format(:nickname, local_nickname_regex())
|> validate_format(:email, @email_regex)
|> validate_length(:bio, max: 1000)


+ 14
- 0
test/user_test.exs View File

@@ -153,6 +153,20 @@ defmodule Pleroma.UserTest do
end)
end

test "it restricts certain nicknames" do
[restricted_name | _] = Pleroma.Config.get([Pleroma.User, :restricted_nicknames])

assert is_bitstring(restricted_name)

params =
@full_user_data
|> Map.put(:nickname, restricted_name)

changeset = User.register_changeset(%User{}, params)

refute changeset.valid?
end

test "it sets the password_hash, ap_id and following fields" do
changeset = User.register_changeset(%User{}, @full_user_data)



Loading…
Cancel
Save