Ivan Tashkinov
6f5f7af607
[ #1973 ] Fixed accounts rendering in GET /api/v1/pleroma/chats with truish :restrict_unauthenticated.
...
Made `Pleroma.Web.MastodonAPI.AccountView.render("show.json", _)` demand :for or :force option in order to prevent incorrect rendering of empty map instead of expected user representation with truish :restrict_unauthenticated setting.
2020-07-22 19:06:00 +03:00
lain
1c9752cff4
Merge branch 'fix/pleroma-api-emoji-packs' into 'develop'
...
Fix /api/pleroma/emoji/packs index endpoint.
See merge request pleroma/pleroma!2777
2020-07-22 15:09:32 +00:00
Maksim Pechnikov
db0224d174
added check user email for welcome email
2020-07-22 16:00:49 +03:00
Lain Soykaf
0cb9e1da74
StatusView: Handle badly formatted emoji reactions.
2020-07-22 14:44:06 +02:00
Maksim Pechnikov
5879d36854
fix sender for welcome email
2020-07-22 15:34:47 +03:00
Mark Felder
341a8f3500
Skip the correct plug
2020-07-21 17:26:59 -05:00
lain
5b1eeb06d8
Revert "Merge branch 'revert-2b5d9eb1' into 'develop'"
...
This reverts merge request !2784
2020-07-21 22:18:17 +00:00
lain
696c13ce54
Revert "Merge branch 'linkify' into 'develop'"
...
This reverts merge request !2677
2020-07-21 22:17:34 +00:00
Mark Felder
97c60b6a43
Merge branch 'develop' into fix/pleroma-api-emoji-packs
2020-07-21 16:25:45 -05:00
lain
2b5d9eb105
Merge branch 'linkify' into 'develop'
...
AutoLinker --> Linkify, update to latest version
See merge request pleroma/pleroma!2677
2020-07-21 19:35:43 +00:00
lain
fa2421dd7e
Merge branch 'gopher-fix' into 'develop'
...
Gopher: using atom keys in search params
See merge request pleroma/pleroma!2775
2020-07-21 19:31:03 +00:00
Egor Kislitsyn
bdb3375933
Allow unblocking a domain via query params
2020-07-21 16:06:46 +04:00
Maksim Pechnikov
3edaecae96
added welcome email
2020-07-21 09:25:53 +03:00
Alex Gleason
204dddcfaa
Pleroma.Formatter can have partial updates
2020-07-20 13:45:05 -05:00
href
4bac25e6f5
Don't enable Pleroma.HTTP.Middleware.FollowRedirects unless Gun is used
2020-07-18 13:17:38 +02:00
KokaKiwi
7ce722ce3e
Fix /api/pleroma/emoji/packs index endpoint.
2020-07-18 12:55:04 +02:00
Haelwenn
10d46235cf
Merge branch 'fix-1958' into 'develop'
...
OpenAPI: Add :id to follower/following endpoints, fixes #1958
Closes #1958
See merge request pleroma/pleroma!2772
2020-07-17 18:54:30 +00:00
Alex Gleason
48f8b26c92
OpenAPI: Add :id to follower/following endpoints, fixes #1958
2020-07-17 12:35:28 -05:00
Alex Gleason
5756843736
Fully delete users with status :approval_pending
2020-07-17 12:19:41 -05:00
Mark Felder
20a496d2cb
Expose the post formats in /api/v1/instance
2020-07-17 10:45:41 -05:00
Alexander Strizhakov
af376cbffb
using atom keys in search params
2020-07-17 18:06:05 +03:00
Mark Felder
62438530e2
TOTP length is configurable, so we can't hardcode this here.
2020-07-17 08:19:49 -05:00
Alex Gleason
5e74556703
Sanitize `reason` param in POST /api/v1/accounts
2020-07-16 20:25:53 -05:00
Alex Gleason
38425ebdbf
Merge remote-tracking branch 'upstream/develop' into linkify
2020-07-16 14:51:36 -05:00
Mark Felder
3be64556db
Improve TOTP token and recovery input fields in OAuth login
2020-07-16 13:11:03 -05:00
Alex Gleason
9ce95fa68f
Use `approval_required` in /api/v1/instance
2020-07-15 17:04:30 -05:00
Mark Felder
b2d398b1d0
Merge branch 'develop' into refactor/gun-pool-registry
2020-07-15 13:34:27 -05:00
Mark Felder
9d30bacace
Merge branch 'develop' into refactor/notification_settings
2020-07-15 09:30:23 -05:00
rinpatch
0fe36b311c
Merge branch 'features/mrf-reasons' into 'develop'
...
Add rejection reason to our MRFs
See merge request pleroma/pleroma!2759
2020-07-15 14:00:22 +00:00
Haelwenn (lanodan) Monnier
d29b8997f4
MastoAPI: fix & test giving MRF reject reasons
2020-07-15 15:25:33 +02:00
rinpatch
7115c5f82e
ConnectionPool.Worker: do not stop with an error when there is a timeout
...
This produced error log messages about GenServer termination
every time the connection was not open due to a timeout.
Instead we stop with `{:shutdown, <gun_error>}` since shutting down
when the connection can't be established is normal behavior.
2020-07-15 15:58:08 +03:00
href
6d583bcc3b
Set a default timeout for Gun adapter timeout
2020-07-15 15:26:35 +03:00
href
afd378f84c
host is now useless
2020-07-15 15:26:35 +03:00
href
ce1a42bd04
Simplify TLS opts
...
- `verify_fun` is not useful now
- use `customize_check_hostname` (OTP 20+ so OK)
- `partial_chain` is useless as of OTP 21.1 (wasn't there, but hackney/..
uses it)
2020-07-15 15:26:35 +03:00
href
53ba6815b1
parentheses...
2020-07-15 15:26:35 +03:00
href
23d714ed30
Fix race in enforcer/reclaimer start
2020-07-15 15:26:35 +03:00
href
6a0f2bdf8c
Ensure connections error get known by the caller
2020-07-15 15:26:35 +03:00
href
46dd276d68
ConnectionPool.Worker: Open gun conn in continue instead of init
2020-07-15 15:26:35 +03:00
rinpatch
a705637dcf
Connection Pool: fix LRFU implementation to not actually be LRU
...
The numbers of the native time unit were so small the CRF was always 1,
making it an LRU. This commit switches the time to miliseconds and changes
the time delta multiplier to the one yielding mostly highest hit rates according
to the paper
2020-07-15 15:26:35 +03:00
rinpatch
9b73c35ca8
Request limiter setup: consider {:error, :existing} a success
...
When the application restarts (which happens after certain config
changes), the limiters are not destroyed, so `ConcurrentLimiter.new`
will produce {:error, :existing}
2020-07-15 15:26:35 +03:00
rinpatch
12fa5541f0
FollowRedirects: Unconditionally release the connection if there is an error
...
There is no need for streaming the body if there is no body
2020-07-15 15:26:35 +03:00
rinpatch
37f1e781cb
Gun adapter helper: fix wildcard cert issues on OTP 23
...
See https://bugs.erlang.org/browse/ERL-1260 for more info.
The ssl match function is basically copied from mint, except
that `:string.lowercase/1` was replaced by `:string.casefold`.
It was a TODO in mint's code, so might as well do it since we don't need
to support OTP <20.
Closes #1834
2020-07-15 15:26:35 +03:00
rinpatch
007843b75e
Add documentation for new connection pool settings and remove some
...
`:retry_timeout` and `:retry` got removed because reconnecting on failure is
something the new pool intentionally doesn't do.
`:max_overflow` had to go in favor of `:max_waiting`, I didn't reuse the key because
the settings are very different in their behaviour.
`:checkin_timeout` got removed in favor of `:connection_acquisition_wait`,
I didn't reuse the key because the settings are somewhat different.
I didn't do any migrations/deprecation warnings/changelog entries because
these settings were never in stable.
2020-07-15 15:26:35 +03:00
rinpatch
7882f28569
Use erlang monotonic time for CRF calculation
2020-07-15 15:26:35 +03:00
rinpatch
00926a63fb
Adapter Helper: Use built-in ip address type
2020-07-15 15:26:35 +03:00
rinpatch
4128e3a84a
HTTP: Implement max request limits
2020-07-15 15:26:35 +03:00
rinpatch
94c8f3cfaf
Use a custom pool-aware FollowRedirects middleware
2020-07-15 15:26:35 +03:00
rinpatch
281ddd5e37
Connection pool: fix connections being supervised by gun_sup
2020-07-15 15:26:35 +03:00
rinpatch
1b15cb066c
Connection pool: Add client death tracking
...
While running this in production I noticed a number of ghost
processes with all their clients dead before they released the connection,
so let's track them to log it and remove them from clients
2020-07-15 15:26:35 +03:00
rinpatch
e94ba05e52
Connection pool: Fix a possible infinite recursion if the pool is exhausted
2020-07-15 15:26:35 +03:00
rinpatch
7738fbbaf5
Connection pool: implement logging and telemetry events
2020-07-15 15:26:25 +03:00
rinpatch
0ffde499b8
Connection Pool: register workers using :via
2020-07-15 15:24:47 +03:00
rinpatch
ec9d0d146b
Connection pool: Fix race conditions in limit enforcement
...
Fixes race conditions in limit enforcement by putting worker processes
in a DynamicSupervisor
2020-07-15 15:17:27 +03:00
rinpatch
d08b157699
Connection pool: check that there actually is a result
...
Sometimes connections died before being released to the pool, resulting
in MatchErrors
2020-07-15 15:17:27 +03:00
rinpatch
fffbcffb8c
Connection Pool: don't enforce pool limits if no new connection needs to be opened
2020-07-15 15:17:27 +03:00
rinpatch
58a4f350a8
Refactor gun pooling and simplify adapter option insertion
...
This patch refactors gun pooling to use Elixir process registry and
simplifies adapter option insertion.
Having the pool use process registry instead of a GenServer has a number of advantages:
- Simpler code: the initial implementation adds about half the lines of code it deletes
- Concurrency: unlike a GenServer, ETS-based registry can handle multiple checkout/checkin
requests at the same time
- Precise and easy idle connection clousure: current proposal for closing idle connections in
the GenServer-based pool needs to filter through all connections once a minute and compare their
last active time with closing time. With Elixir process registry this can be done
by just using `Process.send_after`/`Process.cancel_timer` in the worker process.
- Lower memory footprint: In my tests `gun-memory-leak` branch uses about 290mb on peak load (250 connections)
and 235mb on idle (5-10 connections). Registry-based pool uses 210mb on idle and 240mb on peak load
2020-07-15 15:17:27 +03:00
Alex Gleason
0d004a9d04
Email admins when a new unapproved account is up for review
2020-07-14 20:31:20 -05:00
Alex Gleason
48983e9421
Merge remote-tracking branch 'upstream/develop' into by-approval
2020-07-14 18:56:40 -05:00
Alex Gleason
df3d1bf5e5
Add :approval_pending to User @type account_status
2020-07-14 18:56:36 -05:00
Alex Gleason
20d24741af
AdminAPI: Add `PATCH /api/pleroma/admin/users/approve` endpoint
2020-07-14 18:02:44 -05:00
Alex Gleason
33f1b29b2c
AdminAPI: Filter users by `need_approval`
2020-07-14 14:29:03 -05:00
Alex Gleason
b750129da1
AdminAPI: Return `approval_pending` with users
2020-07-14 13:47:05 -05:00
Maksim Pechnikov
1dd767b8c7
Include port in host for signatures
2020-07-14 21:44:08 +03:00
Mark Felder
777a7edc6b
Lint and fix test to match new log message
2020-07-14 13:15:37 -05:00
Mark Felder
37297a8482
Improve error messages
2020-07-14 13:12:16 -05:00
Alex Gleason
a1570ba6ad
AdminAPI: Return `registration_reason` with users
2020-07-14 13:08:39 -05:00
feld
3f65f2ea79
Merge branch 'feature/1922-media-proxy-whitelist' into 'develop'
...
Support for hosts with scheme in MediaProxy whitelist setting
Closes #1922
See merge request pleroma/pleroma!2754
2020-07-14 18:07:44 +00:00
feld
63798e89de
Merge branch 'fix/scrubber-recompile-warnings-as-errors' into 'develop'
...
Fix in-db configuration in dev environment
See merge request pleroma/pleroma!2764
2020-07-14 18:05:36 +00:00
feld
2909dc873b
Merge branch '1940-admin-token-oauthless-auth' into 'develop'
...
[#1940 ] Reinstated OAuth-less `admin_token` authentication
Closes #1940
See merge request pleroma/pleroma!2760
2020-07-14 16:48:26 +00:00
Ivan Tashkinov
124b4709dc
[ #1940 ] Added `admin_token` param (as `admin_api_params/0`) to existing Admin API OpenAPI operations.
2020-07-14 19:31:05 +03:00
feld
246f49d685
Merge branch '1916-transmogrifier-skipping-oddities-in-address-fields' into 'develop'
...
Transmogrifier: filtering weirdness in address fields
Closes #1916
See merge request pleroma/pleroma!2762
2020-07-14 15:17:25 +00:00
rinpatch
e6ccc25565
Fix in-db configuration in dev environment
...
Previously, in-db configuration only worked when `warnings_as_errors`
was disabled because re-compiling scrubbers on application restart
created a warning about module conflicts. This patch fixes that
by enabling `ignore_module_conflict` option of the compiler at runtime,
and enables `warnings_as_errors` in prod since there is no reason
to keep it disabled anymore.
2020-07-14 13:16:54 +03:00
Haelwenn (lanodan) Monnier
858d9fc7e8
MRF Policies: Return a {:reject, reason} instead of {:reject, nil}
2020-07-14 11:04:16 +02:00
Ivan Tashkinov
9b225db7d8
[ #1940 ] Applied rate limit for requests with bad `admin_token`. Added doc warnings on `admin_token` setting.
2020-07-14 11:58:41 +03:00
Ivan Tashkinov
cf3f8cb72a
[ #1940 ] Reinstated OAuth-less `admin_token` authentication. Refactored UserIsAdminPlug (freed from checking admin scopes presence).
2020-07-19 21:35:57 +03:00
Alex Gleason
5ddf0415c4
Accept `reason` in POST /api/v1/accounts and store in DB
2020-07-14 00:22:12 -05:00
=
b221b640a2
Transmogrifier: filtering weirdness in address fields
2020-07-13 22:43:21 +03:00
Mark Felder
80c21100db
Merge branch 'develop' into refactor/notification_settings
2020-07-13 13:32:21 -05:00
feld
5d215fd81f
Merge branch 'config-behaviours-runtime' into 'develop'
...
Config/Docs: Expand behaviour suggestions modules at runtime
Closes #1941
See merge request pleroma/pleroma!2755
2020-07-13 15:45:25 +00:00
feld
8f9ee694ed
Merge branch 'features/profile-fields-emojo' into 'develop'
...
user: Add support for custom emojis in profile fields
See merge request pleroma/pleroma!2741
2020-07-13 15:43:46 +00:00
Haelwenn (lanodan) Monnier
ce243b107f
Use Logger.info for {:reject, reason}
2020-07-13 15:26:31 +02:00
Haelwenn (lanodan) Monnier
2aac92e9e0
Transmogrifier.fix_in_reply_to/2: Use warn for non-fatal fail to get replied-to post
2020-07-13 15:26:30 +02:00
Haelwenn
f918b6f86d
Merge branch '1937-renaming' into 'develop'
...
ActivityPub: Don't rename a clashing nickname with the same ap id.
Closes #1937
See merge request pleroma/pleroma!2748
2020-07-13 12:06:43 +00:00
Alex Gleason
bcfd38c8f3
Make a user unapproved when registering with `account_approval_required` on
2020-07-12 22:55:37 -05:00
Alex Gleason
e4e5577818
Prevent unapproved users from logging in
2020-07-12 22:55:26 -05:00
Alex Gleason
51ab8d0128
Add `account_approval_required` instance setting
2020-07-12 20:27:58 -05:00
Alex Gleason
a62f17da17
Add `approval_pending` field to User
2020-07-12 20:27:14 -05:00
href
4347d2de5e
Config/Docs: Expand behaviour suggestions at runtime
2020-07-12 17:23:33 +02:00
Alexander Strizhakov
b376442325
MediaProxy whitelist setting now supports hosts with scheme
...
added deprecation warning about using bare domains
2020-07-12 12:41:40 +03:00
Maksim Pechnikov
62fc8eab0d
fix reset confirmation email in admin section
2020-07-11 07:20:35 +03:00
Mark Felder
b329f05ed6
Remove unused @types
2020-07-10 17:08:54 -05:00
Mark Felder
9e45672674
Add a moduledoc
2020-07-10 17:07:28 -05:00
Mark Felder
6167593881
Support Exiftool for stripping EXIF data
...
We really only want to strip location data anyway, and mogrify strips color profiles.
2020-07-10 16:46:26 -05:00
Mark Felder
3c0c1fd2ef
Merge branch 'develop' into issue/1790-updated-oban
2020-07-10 11:34:53 -05:00
feld
ce9514000d
Merge branch 'proxy-range-and-chunk' into 'develop'
...
ReverseProxy: Streaming and disable encoding if Range
Closes #1860 and #1823
See merge request pleroma/pleroma!2749
2020-07-10 16:18:28 +00:00
Mark Felder
72b3dbf4d1
Credo line length complaint
2020-07-10 11:04:19 -05:00
href
a1dace088c
ReverseProxy: Streaming and disable encoding if Range
...
Fixes #1823
Fixes #1860
2020-07-10 17:23:11 +02:00
lain
93e494ec21
ActivityPub: Don't rename a clashing nickname with the same ap id.
2020-07-10 14:10:44 +02:00
lain
b39eb6ecc5
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into chat-federation-information
2020-07-10 12:26:53 +02:00
Haelwenn
31a0ed5d01
Merge branch 'admin-api-user-credentials-for-remote-users-fix' into 'develop'
...
Admin API: fix `GET /api/pleroma/admin/users/:nickname/credentials` returning 404 when getting the credentials of a remote user while `:instance, :limit_to_local_content` is set to `:unauthenticated`
Closes admin-fe#107 and #1788
See merge request pleroma/pleroma!2554
2020-07-10 09:22:14 +00:00