diff options
| -rw-r--r-- | config/description.exs | 17 | ||||
| -rw-r--r-- | lib/pleroma/emails/new_users_digest_email.ex | 6 | ||||
| -rw-r--r-- | lib/pleroma/helpers/uri_helper.ex | 3 | ||||
| -rw-r--r-- | lib/pleroma/user.ex | 9 | ||||
| -rw-r--r-- | lib/pleroma/web/mastodon_api/views/instance_view.ex | 7 | ||||
| -rw-r--r-- | test/user_test.exs | 12 | ||||
| -rw-r--r-- | test/workers/cron/new_users_digest_worker_test.exs | 1 | 
7 files changed, 48 insertions, 7 deletions
diff --git a/config/description.exs b/config/description.exs index 716bcf4ff..cf7cc297a 100644 --- a/config/description.exs +++ b/config/description.exs @@ -969,6 +969,13 @@ config :pleroma, :config_description, [              ]            }          ] +      }, +      %{ +        key: :instance_thumbnail, +        type: :string, +        description: +          "The instance thumbnail image. It will appear in [Pleroma Instances](http://distsn.org/pleroma-instances.html)", +        suggestions: ["/instance/thumbnail.jpeg"]        }      ]    }, @@ -1112,7 +1119,7 @@ config :pleroma, :config_description, [              logoMask: true,              minimalScopesMode: false,              noAttachmentLinks: false, -            nsfwCensorImage: "", +            nsfwCensorImage: "/static/img/nsfw.74818f9.png",              postContentType: "text/plain",              redirectRootLogin: "/main/friends",              redirectRootNoLogin: "/main/all", @@ -1226,7 +1233,7 @@ config :pleroma, :config_description, [              type: :string,              description:                "URL of the image to use for hiding NSFW media attachments in the timeline.", -            suggestions: ["/static/img/nsfw.png"] +            suggestions: ["/static/img/nsfw.74818f9.png"]            },            %{              key: :postContentType, @@ -1346,6 +1353,12 @@ config :pleroma, :config_description, [          suggestions: [            :pleroma_fox_tan          ] +      }, +      %{ +        key: :default_user_avatar, +        type: :string, +        description: "URL of the default user avatar.", +        suggestions: ["/images/avi.png"]        }      ]    }, diff --git a/lib/pleroma/emails/new_users_digest_email.ex b/lib/pleroma/emails/new_users_digest_email.ex index 7d16b807f..348cbac9c 100644 --- a/lib/pleroma/emails/new_users_digest_email.ex +++ b/lib/pleroma/emails/new_users_digest_email.ex @@ -14,8 +14,10 @@ defmodule Pleroma.Emails.NewUsersDigestEmail do      styling = Pleroma.Config.get([Pleroma.Emails.UserEmail, :styling])      logo_url = -      Pleroma.Web.Endpoint.url() <> -        Pleroma.Config.get([:frontend_configurations, :pleroma_fe, :logo]) +      Pleroma.Helpers.UriHelper.maybe_add_base( +        Pleroma.Config.get([:frontend_configurations, :pleroma_fe, :logo]), +        Pleroma.Web.Endpoint.url() +      )      new()      |> to({to.name, to.email}) diff --git a/lib/pleroma/helpers/uri_helper.ex b/lib/pleroma/helpers/uri_helper.ex index 256252ddb..69d8c8fe0 100644 --- a/lib/pleroma/helpers/uri_helper.ex +++ b/lib/pleroma/helpers/uri_helper.ex @@ -24,4 +24,7 @@ defmodule Pleroma.Helpers.UriHelper do        params      end    end + +  def maybe_add_base("/" <> uri, base), do: Path.join([base, uri]) +  def maybe_add_base(uri, _base), do: uri  end diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index e8013bf40..eb9533d78 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -305,8 +305,13 @@ defmodule Pleroma.User do    def avatar_url(user, options \\ []) do      case user.avatar do -      %{"url" => [%{"href" => href} | _]} -> href -      _ -> !options[:no_default] && "#{Web.base_url()}/images/avi.png" +      %{"url" => [%{"href" => href} | _]} -> +        href + +      _ -> +        unless options[:no_default] do +          Config.get([:assets, :default_user_avatar], "#{Web.base_url()}/images/avi.png") +        end      end    end diff --git a/lib/pleroma/web/mastodon_api/views/instance_view.ex b/lib/pleroma/web/mastodon_api/views/instance_view.ex index 8088306c3..6a630eafa 100644 --- a/lib/pleroma/web/mastodon_api/views/instance_view.ex +++ b/lib/pleroma/web/mastodon_api/views/instance_view.ex @@ -23,7 +23,7 @@ defmodule Pleroma.Web.MastodonAPI.InstanceView do          streaming_api: Pleroma.Web.Endpoint.websocket_url()        },        stats: Pleroma.Stats.get_stats(), -      thumbnail: Pleroma.Web.base_url() <> "/instance/thumbnail.jpeg", +      thumbnail: instance_thumbnail(),        languages: ["en"],        registrations: Keyword.get(instance, :registrations_open),        # Extra (not present in Mastodon): @@ -87,4 +87,9 @@ defmodule Pleroma.Web.MastodonAPI.InstanceView do      end      |> Map.put(:enabled, Config.get([:instance, :federating]))    end + +  defp instance_thumbnail do +    Pleroma.Config.get([:instance, :instance_thumbnail]) || +      "#{Pleroma.Web.base_url()}/instance/thumbnail.jpeg" +  end  end diff --git a/test/user_test.exs b/test/user_test.exs index 863e0106c..ea192ad10 100644 --- a/test/user_test.exs +++ b/test/user_test.exs @@ -1777,4 +1777,16 @@ defmodule Pleroma.UserTest do        assert result.email_notifications["digest"] == false      end    end + +  test "avatar fallback" do +    user = insert(:user) +    assert User.avatar_url(user) =~ "/images/avi.png" + +    Pleroma.Config.put([:assets, :default_user_avatar], "avatar.png") + +    user = User.get_cached_by_nickname_or_id(user.nickname) +    assert User.avatar_url(user) =~ "avatar.png" + +    assert User.avatar_url(user, no_default: true) == nil +  end  end diff --git a/test/workers/cron/new_users_digest_worker_test.exs b/test/workers/cron/new_users_digest_worker_test.exs index 54cf0ca46..ee589bb55 100644 --- a/test/workers/cron/new_users_digest_worker_test.exs +++ b/test/workers/cron/new_users_digest_worker_test.exs @@ -28,6 +28,7 @@ defmodule Pleroma.Workers.Cron.NewUsersDigestWorkerTest do      assert email.html_body =~ user.nickname      assert email.html_body =~ user2.nickname      assert email.html_body =~ "cofe" +    assert email.html_body =~ "#{Pleroma.Web.Endpoint.url()}/static/logo.png"    end    test "it doesn't fail when admin has no email" do  | 
