X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fuser.ex;h=23be6276ebe6abce6bffa9567d4c5a7d6225b600;hb=00a7183118d90946bf243d0f5488db65f8a6f16f;hp=c264d7e90994560824d88c7557fc43d7bbbe3eef;hpb=bed0b398139897ebe9f839d1263acf6934c4a42f;p=akkoma diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index c264d7e90..23be6276e 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -1,8 +1,9 @@ defmodule Pleroma.User do use Ecto.Schema - import Ecto.Changeset - import Ecto.Query - alias Pleroma.{Repo, User, Activity, Object} + + import Ecto.{Changeset, Query} + alias Pleroma.{Repo, User, Object, Web} + alias Comeonin.Pbkdf2 alias Pleroma.Web.OStatus schema "users" do @@ -13,7 +14,7 @@ defmodule Pleroma.User do field :password_hash, :string field :password, :string, virtual: true field :password_confirmation, :string, virtual: true - field :following, { :array, :string }, default: [] + field :following, {:array, :string}, default: [] field :ap_id, :string field :avatar, :map field :local, :boolean, default: true @@ -30,7 +31,7 @@ defmodule Pleroma.User do end def ap_id(%User{nickname: nickname}) do - "#{Pleroma.Web.base_url}/users/#{nickname}" + "#{Web.base_url}/users/#{nickname}" end def ap_followers(%User{} = user) do @@ -69,7 +70,7 @@ defmodule Pleroma.User do |> validate_format(:nickname, ~r/^[a-zA-Z\d]+$/) if changeset.valid? do - hashed = Comeonin.Pbkdf2.hashpwsalt(changeset.changes[:password]) + hashed = Pbkdf2.hashpwsalt(changeset.changes[:password]) ap_id = User.ap_id(%User{nickname: changeset.changes[:nickname]}) followers = User.ap_followers(%User{nickname: changeset.changes[:nickname]}) changeset @@ -84,8 +85,8 @@ defmodule Pleroma.User do def follow(%User{} = follower, %User{} = followed) do ap_followers = User.ap_followers(followed) if following?(follower, followed) do - { :error, - "Could not follow user: #{followed.nickname} is already on your list." } + {:error, + "Could not follow user: #{followed.nickname} is already on your list."} else following = [ap_followers | follower.following] |> Enum.uniq @@ -106,7 +107,7 @@ defmodule Pleroma.User do |> follow_changeset(%{following: following}) |> Repo.update else - { :error, "Not subscribed!" } + {:error, "Not subscribed!"} end end @@ -121,7 +122,7 @@ defmodule Pleroma.User do def get_cached_by_nickname(nickname) do key = "nickname:#{nickname}" - Cachex.get!(:user_cache, key, fallback: fn(_) -> Repo.get_by(User, nickname: nickname) end) + Cachex.get!(:user_cache, key, fallback: fn(_) -> get_or_fetch_by_nickname(nickname) end) end def get_by_nickname(nickname) do @@ -137,7 +138,8 @@ defmodule Pleroma.User do with %User{} = user <- get_by_nickname(nickname) do user else _e -> - with {:ok, user} <- OStatus.make_user(nickname) do + with [nick, domain] <- String.split(nickname, "@"), + {:ok, user} <- OStatus.make_user(nickname) do user else _e -> nil end