diff options
author | Maksim Pechnikov <parallel588@gmail.com> | 2020-02-10 07:59:52 +0300 |
---|---|---|
committer | Maksim Pechnikov <parallel588@gmail.com> | 2020-02-10 07:59:52 +0300 |
commit | b87533760bb386e85eb8c806e1d242d2b1380971 (patch) | |
tree | 5bdd76fba3da0d90a4c81fff6a930f47b15d4f4c /lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex | |
parent | ba5e8a644463a19b863e862def80adb6a5a1060b (diff) | |
parent | 544bdbfb90d764a5aba8ed07c13b842838d76d73 (diff) | |
download | pleroma-b87533760bb386e85eb8c806e1d242d2b1380971.tar.gz |
Merge branch 'develop' into issue/1276
Diffstat (limited to 'lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex')
-rw-r--r-- | lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex b/lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex index 0bbf84fd3..a2f6d2287 100644 --- a/lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/emoji_api_controller.ex @@ -573,11 +573,14 @@ keeping it in cache for #{div(cache_ms, 1000)}s") assumed to be emojis and stored in the new `pack.json` file. """ def import_from_fs(conn, _params) do - with {:ok, results} <- File.ls(emoji_dir_path()) do + emoji_path = emoji_dir_path() + + with {:ok, %{access: :read_write}} <- File.stat(emoji_path), + {:ok, results} <- File.ls(emoji_path) do imported_pack_names = results |> Enum.filter(fn file -> - dir_path = Path.join(emoji_dir_path(), file) + dir_path = Path.join(emoji_path, file) # Find the directories that do NOT have pack.json File.dir?(dir_path) and not File.exists?(Path.join(dir_path, "pack.json")) end) @@ -585,6 +588,11 @@ keeping it in cache for #{div(cache_ms, 1000)}s") json(conn, imported_pack_names) else + {:ok, %{access: _}} -> + conn + |> put_status(:internal_server_error) + |> json(%{error: "Error: emoji pack directory must be writable"}) + {:error, _} -> conn |> put_status(:internal_server_error) |