[MastoAPI] Add switching of frontend flavours
[akkoma] / lib / pleroma / user / info.ex
index c6c923aac0f30a3b61480004d37f615081d419ca..e33ec816b0082ccb02e8dd51d7e95d84561fb242 100644 (file)
@@ -23,6 +23,7 @@ defmodule Pleroma.User.Info do
     field(:ap_enabled, :boolean, default: false)
     field(:is_moderator, :boolean, default: false)
     field(:is_admin, :boolean, default: false)
+    field(:show_role, :boolean, default: true)
     field(:keys, :string, default: nil)
     field(:settings, :map, default: nil)
     field(:magic_key, :string, default: nil)
@@ -30,8 +31,10 @@ defmodule Pleroma.User.Info do
     field(:topic, :string, default: nil)
     field(:hub, :string, default: nil)
     field(:salmon, :string, default: nil)
-    field(:hide_network, :boolean, default: false)
+    field(:hide_followers, :boolean, default: false)
+    field(:hide_follows, :boolean, default: false)
     field(:pinned_activities, {:array, :string}, default: [])
+    field(:flavour, :string, default: nil)
 
     # Found in the wild
     # ap_id -> Where is this used?
@@ -143,8 +146,10 @@ defmodule Pleroma.User.Info do
       :no_rich_text,
       :default_scope,
       :banner,
-      :hide_network,
-      :background
+      :hide_follows,
+      :hide_followers,
+      :background,
+      :show_role
     ])
   end
 
@@ -182,6 +187,14 @@ defmodule Pleroma.User.Info do
     |> validate_required([:settings])
   end
 
+  def mastodon_flavour_update(info, flavour) do
+    params = %{flavour: flavour}
+
+    info
+    |> cast(params, [:flavour])
+    |> validate_required([:flavour])
+  end
+
   def set_source_data(info, source_data) do
     params = %{source_data: source_data}
 
@@ -194,7 +207,8 @@ defmodule Pleroma.User.Info do
     info
     |> cast(params, [
       :is_moderator,
-      :is_admin
+      :is_admin,
+      :show_role
     ])
   end