diff options
| -rw-r--r-- | docs/API/pleroma_api.md | 2 | ||||
| -rw-r--r-- | lib/mix/tasks/pleroma/notification_settings.ex | 18 | ||||
| -rw-r--r-- | lib/pleroma/user/notification_setting.ex | 4 | ||||
| -rw-r--r-- | lib/pleroma/web/api_spec/schemas/account.ex | 4 | ||||
| -rw-r--r-- | lib/pleroma/web/push/impl.ex | 2 | ||||
| -rw-r--r-- | priv/repo/migrations/20200626163359_rename_notification_privacy_option.exs | 19 | ||||
| -rw-r--r-- | test/user/notification_setting_test.exs | 4 | ||||
| -rw-r--r-- | test/web/mastodon_api/views/account_view_test.exs | 2 | ||||
| -rw-r--r-- | test/web/push/impl_test.exs | 8 | ||||
| -rw-r--r-- | test/web/twitter_api/util_controller_test.exs | 8 | 
10 files changed, 45 insertions, 26 deletions
diff --git a/docs/API/pleroma_api.md b/docs/API/pleroma_api.md index 6d8a88a44..5bd38ad36 100644 --- a/docs/API/pleroma_api.md +++ b/docs/API/pleroma_api.md @@ -288,7 +288,7 @@ See [Admin-API](admin_api.md)  * Authentication: required  * Params:      * `block_from_strangers`: BOOLEAN field, blocks notifications from accounts you do not follow -    * `privacy_option`: BOOLEAN field. When set to true, it removes the contents of a message from the push notification. +    * `hide_notification_contents`: BOOLEAN field. When set to true, it removes the contents of a message from the push notification.  * Response: JSON. Returns `{"status": "success"}` if the update was successful, otherwise returns `{"error": "error_msg"}`  ## `/api/pleroma/healthcheck` diff --git a/lib/mix/tasks/pleroma/notification_settings.ex b/lib/mix/tasks/pleroma/notification_settings.ex index 7d65f0587..00f5ba7bf 100644 --- a/lib/mix/tasks/pleroma/notification_settings.ex +++ b/lib/mix/tasks/pleroma/notification_settings.ex @@ -3,8 +3,8 @@ defmodule Mix.Tasks.Pleroma.NotificationSettings do    @moduledoc """    Example: -  > mix pleroma.notification_settings --privacy-option=false --nickname-users="parallel588"  # set false only for parallel588 user -  > mix pleroma.notification_settings --privacy-option=true # set true for all users +  > mix pleroma.notification_settings --hide-notification-contents=false --nickname-users="parallel588"  # set false only for parallel588 user +  > mix pleroma.notification_settings --hide-notification-contents=true # set true for all users    """ @@ -19,16 +19,16 @@ defmodule Mix.Tasks.Pleroma.NotificationSettings do        OptionParser.parse(          args,          strict: [ -          privacy_option: :boolean, +          hide_notification_contents: :boolean,            email_users: :string,            nickname_users: :string          ]        ) -    privacy_option = Keyword.get(options, :privacy_option) +    hide_notification_contents = Keyword.get(options, :hide_notification_contents) -    if not is_nil(privacy_option) do -      privacy_option +    if not is_nil(hide_notification_contents) do +      hide_notification_contents        |> build_query(options)        |> Pleroma.Repo.update_all([])      end @@ -36,15 +36,15 @@ defmodule Mix.Tasks.Pleroma.NotificationSettings do      shell_info("Done")    end -  defp build_query(privacy_option, options) do +  defp build_query(hide_notification_contents, options) do      query =        from(u in Pleroma.User,          update: [            set: [              notification_settings:                fragment( -                "jsonb_set(notification_settings, '{privacy_option}', ?)", -                ^privacy_option +                "jsonb_set(notification_settings, '{hide_notification_contents}', ?)", +                ^hide_notification_contents                )            ]          ] diff --git a/lib/pleroma/user/notification_setting.ex b/lib/pleroma/user/notification_setting.ex index ffe9860de..7d9e8a000 100644 --- a/lib/pleroma/user/notification_setting.ex +++ b/lib/pleroma/user/notification_setting.ex @@ -11,14 +11,14 @@ defmodule Pleroma.User.NotificationSetting do    embedded_schema do      field(:block_from_strangers, :boolean, default: false) -    field(:privacy_option, :boolean, default: false) +    field(:hide_notification_contents, :boolean, default: false)    end    def changeset(schema, params) do      schema      |> cast(prepare_attrs(params), [        :block_from_strangers, -      :privacy_option +      :hide_notification_contents      ])    end diff --git a/lib/pleroma/web/api_spec/schemas/account.ex b/lib/pleroma/web/api_spec/schemas/account.ex index 91bb1ba88..71d402b18 100644 --- a/lib/pleroma/web/api_spec/schemas/account.ex +++ b/lib/pleroma/web/api_spec/schemas/account.ex @@ -58,7 +58,7 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Account do              type: :object,              properties: %{                block_from_strangers: %Schema{type: :boolean}, -              privacy_option: %Schema{type: :boolean} +              hide_notification_contents: %Schema{type: :boolean}              }            },            relationship: AccountRelationship, @@ -121,7 +121,7 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Account do          "tags" => [],          "notification_settings" => %{            "block_from_strangers" => false, -          "privacy_option" => false +          "hide_notification_contents" => false          },          "relationship" => %{            "blocked_by" => false, diff --git a/lib/pleroma/web/push/impl.ex b/lib/pleroma/web/push/impl.ex index cdb827e76..16368485e 100644 --- a/lib/pleroma/web/push/impl.ex +++ b/lib/pleroma/web/push/impl.ex @@ -104,7 +104,7 @@ defmodule Pleroma.Web.Push.Impl do    def build_content(          %{ -          user: %{notification_settings: %{privacy_option: true}} +          user: %{notification_settings: %{hide_notification_contents: true}}          } = notification,          _actor,          _object, diff --git a/priv/repo/migrations/20200626163359_rename_notification_privacy_option.exs b/priv/repo/migrations/20200626163359_rename_notification_privacy_option.exs new file mode 100644 index 000000000..06d7f7272 --- /dev/null +++ b/priv/repo/migrations/20200626163359_rename_notification_privacy_option.exs @@ -0,0 +1,19 @@ +defmodule Pleroma.Repo.Migrations.RenameNotificationPrivacyOption do +  use Ecto.Migration + +  def up do +    execute( +      "UPDATE users SET notification_settings = notification_settings - 'privacy_option' || jsonb_build_object('hide_notification_contents', notification_settings->'privacy_option') +where notification_settings ? 'privacy_option' +and local" +    ) +  end + +  def down do +    execute( +      "UPDATE users SET notification_settings = notification_settings - 'hide_notification_contents' || jsonb_build_object('privacy_option', notification_settings->'hide_notification_contents') +where notification_settings ? 'hide_notification_contents' +and local" +    ) +  end +end diff --git a/test/user/notification_setting_test.exs b/test/user/notification_setting_test.exs index 95bca22c4..308da216a 100644 --- a/test/user/notification_setting_test.exs +++ b/test/user/notification_setting_test.exs @@ -8,11 +8,11 @@ defmodule Pleroma.User.NotificationSettingTest do    alias Pleroma.User.NotificationSetting    describe "changeset/2" do -    test "sets valid privacy option" do +    test "sets option to hide notification contents" do        changeset =          NotificationSetting.changeset(            %NotificationSetting{}, -          %{"privacy_option" => true} +          %{"hide_notification_contents" => true}          )        assert %Ecto.Changeset{valid?: true} = changeset diff --git a/test/web/mastodon_api/views/account_view_test.exs b/test/web/mastodon_api/views/account_view_test.exs index b6d820b3f..ce45cb9e9 100644 --- a/test/web/mastodon_api/views/account_view_test.exs +++ b/test/web/mastodon_api/views/account_view_test.exs @@ -97,7 +97,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do      notification_settings = %{        block_from_strangers: false, -      privacy_option: false +      hide_notification_contents: false      }      privacy = user.default_scope diff --git a/test/web/push/impl_test.exs b/test/web/push/impl_test.exs index b48952b29..15de5e853 100644 --- a/test/web/push/impl_test.exs +++ b/test/web/push/impl_test.exs @@ -238,9 +238,9 @@ defmodule Pleroma.Web.Push.ImplTest do               }      end -    test "hides details for notifications when privacy option enabled" do +    test "hides contents of notifications when option enabled" do        user = insert(:user, nickname: "Bob") -      user2 = insert(:user, nickname: "Rob", notification_settings: %{privacy_option: true}) +      user2 = insert(:user, nickname: "Rob", notification_settings: %{hide_notification_contents: true})        {:ok, activity} =          CommonAPI.post(user, %{ @@ -284,9 +284,9 @@ defmodule Pleroma.Web.Push.ImplTest do               }      end -    test "returns regular content for notifications with privacy option disabled" do +    test "returns regular content when hiding contents option disabled" do        user = insert(:user, nickname: "Bob") -      user2 = insert(:user, nickname: "Rob", notification_settings: %{privacy_option: false}) +      user2 = insert(:user, nickname: "Rob", notification_settings: %{hide_notification_contents: false})        {:ok, activity} =          CommonAPI.post(user, %{ diff --git a/test/web/twitter_api/util_controller_test.exs b/test/web/twitter_api/util_controller_test.exs index da3f6fa61..b8ddadb50 100644 --- a/test/web/twitter_api/util_controller_test.exs +++ b/test/web/twitter_api/util_controller_test.exs @@ -200,20 +200,20 @@ defmodule Pleroma.Web.TwitterAPI.UtilControllerTest do        assert %Pleroma.User.NotificationSetting{                 block_from_strangers: true, -               privacy_option: false +               hide_notification_contents: false               } == user.notification_settings      end -    test "it updates notification privacy option", %{user: user, conn: conn} do +    test "it updates notification settings to enable hiding contents", %{user: user, conn: conn} do        conn -      |> put("/api/pleroma/notification_settings", %{"privacy_option" => "1"}) +      |> put("/api/pleroma/notification_settings", %{"hide_notification_contents" => "1"})        |> json_response(:ok)        user = refresh_record(user)        assert %Pleroma.User.NotificationSetting{                 block_from_strangers: false, -               privacy_option: true +               hide_notification_contents: true               } == user.notification_settings      end    end  | 
