소스 검색

Merge branch 'secfix/search-crash' into 'develop'

Fix crash done via search

See merge request pleroma/secteam/pleroma!12
tags/v2.1.1^2
rinpatch 3 년 전
부모
커밋
74d46a1b09
2개의 변경된 파일12개의 추가작업 그리고 12개의 파일을 삭제
  1. +10
    -10
      lib/pleroma/user.ex
  2. +2
    -2
      lib/pleroma/user/search.ex

+ 10
- 10
lib/pleroma/user.ex 파일 보기

@@ -1125,31 +1125,31 @@ defmodule Pleroma.User do
User.Query.build(%{followers: user, deactivated: false})
end

def get_followers_query(user, page) do
def get_followers_query(%User{} = user, page) do
user
|> get_followers_query(nil)
|> User.Query.paginate(page, 20)
end

@spec get_followers_query(User.t()) :: Ecto.Query.t()
def get_followers_query(user), do: get_followers_query(user, nil)
def get_followers_query(%User{} = user), do: get_followers_query(user, nil)

@spec get_followers(User.t(), pos_integer() | nil) :: {:ok, list(User.t())}
def get_followers(user, page \\ nil) do
def get_followers(%User{} = user, page \\ nil) do
user
|> get_followers_query(page)
|> Repo.all()
end

@spec get_external_followers(User.t(), pos_integer() | nil) :: {:ok, list(User.t())}
def get_external_followers(user, page \\ nil) do
def get_external_followers(%User{} = user, page \\ nil) do
user
|> get_followers_query(page)
|> User.Query.build(%{external: true})
|> Repo.all()
end

def get_followers_ids(user, page \\ nil) do
def get_followers_ids(%User{} = user, page \\ nil) do
user
|> get_followers_query(page)
|> select([u], u.id)
@@ -1161,29 +1161,29 @@ defmodule Pleroma.User do
User.Query.build(%{friends: user, deactivated: false})
end

def get_friends_query(user, page) do
def get_friends_query(%User{} = user, page) do
user
|> get_friends_query(nil)
|> User.Query.paginate(page, 20)
end

@spec get_friends_query(User.t()) :: Ecto.Query.t()
def get_friends_query(user), do: get_friends_query(user, nil)
def get_friends_query(%User{} = user), do: get_friends_query(user, nil)

def get_friends(user, page \\ nil) do
def get_friends(%User{} = user, page \\ nil) do
user
|> get_friends_query(page)
|> Repo.all()
end

def get_friends_ap_ids(user) do
def get_friends_ap_ids(%User{} = user) do
user
|> get_friends_query(nil)
|> select([u], u.ap_id)
|> Repo.all()
end

def get_friends_ids(user, page \\ nil) do
def get_friends_ids(%User{} = user, page \\ nil) do
user
|> get_friends_query(page)
|> select([u], u.id)


+ 2
- 2
lib/pleroma/user/search.ex 파일 보기

@@ -115,8 +115,8 @@ defmodule Pleroma.User.Search do
)
end

defp base_query(_user, false), do: User
defp base_query(user, true), do: User.get_friends_query(user)
defp base_query(%User{} = user, true), do: User.get_friends_query(user)
defp base_query(_user, _following), do: User

defp filter_invisible_users(query) do
from(q in query, where: q.invisible == false)


불러오는 중...
취소
저장