aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorkaniini <nenolod@gmail.com>2019-01-09 07:09:39 +0000
committerkaniini <nenolod@gmail.com>2019-01-09 07:09:39 +0000
commit5c5c8508c203886f32b150e7d8c1f7362a4fde0e (patch)
tree7853b2520be94252a722c694a1d0c5622f444493 /lib
parent3aee8bb67bd3f78ad4e638ea056bbd7b3ff4b7e7 (diff)
parent567651fb3fcacbe5bb2f9c19deb9655edaaad076 (diff)
downloadpleroma-5c5c8508c203886f32b150e7d8c1f7362a4fde0e.tar.gz
Merge branch 'hotfix/media-proxy-uri' into 'develop'
user: fix local vs remote determination in remote_or_auth_active?/1 See merge request pleroma/pleroma!640
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/user.ex28
-rw-r--r--lib/pleroma/user/info.ex2
2 files changed, 18 insertions, 12 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index 8edf1c730..7c2849ce2 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -44,20 +44,28 @@ defmodule Pleroma.User do
timestamps()
end
- def auth_active?(%User{} = user) do
- (user.info && !user.info.confirmation_pending) ||
- !Pleroma.Config.get([:instance, :account_activation_required])
- end
+ def auth_active?(%User{local: false}), do: true
+
+ def auth_active?(%User{info: %User.Info{confirmation_pending: false}}), do: true
+
+ def auth_active?(%User{info: %User.Info{confirmation_pending: true}}),
+ do: !Pleroma.Config.get([:instance, :account_activation_required])
- def remote_or_auth_active?(%User{} = user), do: !user.local || auth_active?(user)
+ def auth_active?(_), do: false
- def visible_for?(%User{} = user, for_user \\ nil) do
- User.remote_or_auth_active?(user) || (for_user && for_user.id == user.id) ||
- User.superuser?(for_user)
+ def visible_for?(user, for_user \\ nil)
+
+ def visible_for?(%User{id: user_id}, %User{id: for_id}) when user_id == for_id, do: true
+
+ def visible_for?(%User{} = user, for_user) do
+ auth_active?(user) || superuser?(for_user)
end
- def superuser?(nil), do: false
- def superuser?(%User{} = user), do: user.info && User.Info.superuser?(user.info)
+ def visible_for?(_, _), do: false
+
+ def superuser?(%User{local: true, info: %User.Info{is_admin: true}}), do: true
+ def superuser?(%User{local: true, info: %User.Info{is_moderator: true}}), do: true
+ def superuser?(_), do: false
def avatar_url(user) do
case user.avatar do
diff --git a/lib/pleroma/user/info.ex b/lib/pleroma/user/info.ex
index 2f419a5a2..7c79dfcff 100644
--- a/lib/pleroma/user/info.ex
+++ b/lib/pleroma/user/info.ex
@@ -41,8 +41,6 @@ defmodule Pleroma.User.Info do
# subject _> Where is this used?
end
- def superuser?(info), do: info.is_admin || info.is_moderator
-
def set_activation_status(info, deactivated) do
params = %{deactivated: deactivated}