projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix tests.
[akkoma]
/
lib
/
pleroma
/
user.ex
diff --git
a/lib/pleroma/user.ex
b/lib/pleroma/user.ex
index 8c1c524ffff8f8a60cbb28f61278c74860f75943..e92b85f52c2baea89ecc9c96f4bf8f4064e07d5a 100644
(file)
--- a/
lib/pleroma/user.ex
+++ b/
lib/pleroma/user.ex
@@
-99,7
+99,7
@@
defmodule Pleroma.User do
|> cast(params, [:bio, :name])
|> unique_constraint(:nickname)
|> validate_format(:nickname, ~r/^[a-zA-Z\d]+$/)
|> cast(params, [:bio, :name])
|> unique_constraint(:nickname)
|> validate_format(:nickname, ~r/^[a-zA-Z\d]+$/)
- |> validate_length(:bio, m
in: 1, m
ax: 1000)
+ |> validate_length(:bio, max: 1000)
|> validate_length(:name, min: 1, max: 100)
end
|> validate_length(:name, min: 1, max: 100)
end
@@
-108,8
+108,8
@@
defmodule Pleroma.User do
|> cast(params, [:bio, :name, :info, :follower_address, :avatar])
|> unique_constraint(:nickname)
|> validate_format(:nickname, ~r/^[a-zA-Z\d]+$/)
|> cast(params, [:bio, :name, :info, :follower_address, :avatar])
|> unique_constraint(:nickname)
|> validate_format(:nickname, ~r/^[a-zA-Z\d]+$/)
- |> validate_length(:bio, m
in: 1, max: 1
000)
- |> validate_length(:name, m
in: 1, m
ax: 100)
+ |> validate_length(:bio, m
ax: 5
000)
+ |> validate_length(:name, max: 100)
end
def password_update_changeset(struct, params) do
end
def password_update_changeset(struct, params) do
@@
-134,13
+134,13
@@
defmodule Pleroma.User do
def register_changeset(struct, params \\ %{}) do
changeset = struct
|> cast(params, [:bio, :email, :name, :nickname, :password, :password_confirmation])
def register_changeset(struct, params \\ %{}) do
changeset = struct
|> cast(params, [:bio, :email, :name, :nickname, :password, :password_confirmation])
- |> validate_required([:
bio, :
email, :name, :nickname, :password, :password_confirmation])
+ |> validate_required([:email, :name, :nickname, :password, :password_confirmation])
|> validate_confirmation(:password)
|> unique_constraint(:email)
|> unique_constraint(:nickname)
|> validate_format(:nickname, ~r/^[a-zA-Z\d]+$/)
|> validate_format(:email, @email_regex)
|> validate_confirmation(:password)
|> unique_constraint(:email)
|> unique_constraint(:nickname)
|> validate_format(:nickname, ~r/^[a-zA-Z\d]+$/)
|> validate_format(:email, @email_regex)
- |> validate_length(:bio, m
in: 1, m
ax: 1000)
+ |> validate_length(:bio, max: 1000)
|> validate_length(:name, min: 1, max: 100)
if changeset.valid? do
|> validate_length(:name, min: 1, max: 100)
if changeset.valid? do
@@
-218,6
+218,11
@@
defmodule Pleroma.User do
end
end
end
end
+ def invalidate_cache(user) do
+ Cachex.del(:user_cache, "ap_id:#{user.ap_id}")
+ Cachex.del(:user_cache, "nickname:#{user.nickname}")
+ end
+
def get_cached_by_ap_id(ap_id) do
key = "ap_id:#{ap_id}"
Cachex.get!(:user_cache, key, fallback: fn(_) -> get_by_ap_id(ap_id) end)
def get_cached_by_ap_id(ap_id) do
key = "ap_id:#{ap_id}"
Cachex.get!(:user_cache, key, fallback: fn(_) -> get_by_ap_id(ap_id) end)
@@
-405,8
+410,15
@@
defmodule Pleroma.User do
if user = get_by_ap_id(ap_id) do
user
else
if user = get_by_ap_id(ap_id) do
user
else
- with {:ok, user} <- ActivityPub.make_user_from_ap_id(ap_id) do
- user
+ ap_try = ActivityPub.make_user_from_ap_id(ap_id)
+
+ case ap_try do
+ {:ok, user} -> user
+ _ ->
+ case OStatus.make_user(ap_id) do
+ {:ok, user} -> user
+ _ -> {:error, "Could not fetch by AP id"}
+ end
end
end
end
end
end
end
@@
-445,4
+457,13
@@
defmodule Pleroma.User do
end
def ap_enabled?(%User{info: info}), do: info["ap_enabled"]
end
def ap_enabled?(%User{info: info}), do: info["ap_enabled"]
+ def ap_enabled?(_), do: false
+
+ def get_or_fetch(uri_or_nickname) do
+ if String.starts_with?(uri_or_nickname, "http") do
+ get_or_fetch_by_ap_id(uri_or_nickname)
+ else
+ get_or_fetch_by_nickname(uri_or_nickname)
+ end
+ end
end
end