X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fuser.ex;h=a503a5b3f1dd073354a0abb0505a451298212bad;hb=4d5161b16d21cb7880b468dd28b11581a148d4a3;hp=8c1c524ffff8f8a60cbb28f61278c74860f75943;hpb=37e406ae36e4b7f922cb46d7873ec584768a721b;p=akkoma diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 8c1c524ff..a503a5b3f 100644 --- 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]+$/) - |> validate_length(:bio, min: 1, max: 1000) + |> validate_length(:bio, max: 1000) |> 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]+$/) - |> validate_length(:bio, min: 1, max: 1000) - |> validate_length(:name, min: 1, max: 100) + |> validate_length(:bio, max: 5000) + |> validate_length(:name, max: 100) 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]) - |> 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_length(:bio, min: 1, max: 1000) + |> validate_length(:bio, max: 1000) |> validate_length(:name, min: 1, max: 100) if changeset.valid? do @@ -218,6 +218,11 @@ defmodule Pleroma.User do 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) @@ -405,8 +410,15 @@ defmodule Pleroma.User do 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 @@ -445,4 +457,5 @@ defmodule Pleroma.User do end def ap_enabled?(%User{info: info}), do: info["ap_enabled"] + def ap_enabled?(_), do: false end