about summary refs log tree commit diff
path: root/app/serializers
diff options
context:
space:
mode:
authormultiple creatures <dev@multiple-creature.party>2019-07-19 15:43:59 -0500
committermultiple creatures <dev@multiple-creature.party>2019-07-19 17:03:15 -0500
commit6d07ba50f31f82633019b62dc83ec7099e3926b3 (patch)
tree7d3d329b88c60a04d3aee35e71d932203fc73ba4 /app/serializers
parent3fda862ea004c1c417a442b2a8f38a67d0535979 (diff)
keep `locked` badge for approves-followers + add `frozen` badge for admin-locked accts, also federate `frozen` state
Diffstat (limited to 'app/serializers')
-rw-r--r--app/serializers/activitypub/actor_serializer.rb8
-rw-r--r--app/serializers/rest/account_serializer.rb6
2 files changed, 11 insertions, 3 deletions
diff --git a/app/serializers/activitypub/actor_serializer.rb b/app/serializers/activitypub/actor_serializer.rb
index 95110bfc2..85d2482db 100644
--- a/app/serializers/activitypub/actor_serializer.rb
+++ b/app/serializers/activitypub/actor_serializer.rb
@@ -7,14 +7,14 @@ class ActivityPub::ActorSerializer < ActivityPub::Serializer
 
   context_extensions :manually_approves_followers, :featured, :also_known_as,
                      :moved_to, :property_value, :hashtag, :emoji, :identity_proof,
-                     :adult_content, :gently, :kobold, :supports_chat, :locked
+                     :adult_content, :gently, :kobold, :supports_chat, :froze
 
   attributes :id, :type, :following, :followers,
              :inbox, :outbox, :featured,
              :preferred_username, :name, :summary,
              :url, :manually_approves_followers,
              :gently, :kobold, :adult_content,
-             :supports_chat, :locked
+             :supports_chat, :froze
 
   has_one :public_key, serializer: ActivityPub::PublicKeySerializer
 
@@ -113,6 +113,10 @@ class ActivityPub::ActorSerializer < ActivityPub::Serializer
     object.locked
   end
 
+  def froze
+    object.local? ? (object&.user.nil? ? true : object.user.disabled?) : object.froze?
+  end
+
   def virtual_tags
     object.emojis + object.tags
   end
diff --git a/app/serializers/rest/account_serializer.rb b/app/serializers/rest/account_serializer.rb
index 852ecdae1..bd98989e2 100644
--- a/app/serializers/rest/account_serializer.rb
+++ b/app/serializers/rest/account_serializer.rb
@@ -6,7 +6,7 @@ class REST::AccountSerializer < ActiveModel::Serializer
   attributes :id, :username, :acct, :display_name, :locked, :bot, :created_at,
              :note, :url, :avatar, :avatar_static, :header, :header_static,
              :followers_count, :following_count, :statuses_count, :replies,
-             :adult_content, :supports_chat, :gently, :kobold, :role
+             :adult_content, :supports_chat, :gently, :kobold, :role, :froze
 
   has_one :moved_to_account, key: :moved, serializer: REST::AccountSerializer, if: :moved_and_not_nested?
   has_many :emojis, serializer: REST::CustomEmojiSerializer
@@ -62,4 +62,8 @@ class REST::AccountSerializer < ActiveModel::Serializer
     return 'moderator' if object.user_moderator?
     'user'
   end
+
+  def froze
+    object.local? ? (object&.user.nil? ? true : object.user.disabled?) : object.froze?
+  end
 end