Commit Graph

6803 Commits

Author SHA1 Message Date
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
Haelwenn (lanodan) Monnier e4beff90f5
Create Question: Add context field to create 2020-07-15 12:32:43 +02:00
Haelwenn (lanodan) Monnier bfe2dafd39
{Answer,Question}Validator: Keep both actor and attributedTo for now but sync them 2020-07-15 12:32:42 +02:00
Haelwenn (lanodan) Monnier c19bdc811e
Fix attachments in polls 2020-07-15 12:32:42 +02:00
Haelwenn (lanodan) Monnier d713930ea7
Fixup for EctoType module move 2020-07-15 11:40:24 +02:00
Haelwenn (lanodan) Monnier 435a65b976
QuestionValidator: Use AttachmentValidator 2020-07-15 11:40:24 +02:00
Haelwenn (lanodan) Monnier fe6924d00d
CreateGenericValidator: add expires_at 2020-07-15 11:40:24 +02:00
Haelwenn (lanodan) Monnier 82895a4012
SideEffects: port ones from ActivityPub.do_create and ActivityPub.insert 2020-07-15 11:40:23 +02:00
Haelwenn (lanodan) Monnier 4f70fd4105
question_validator: remove conversation field 2020-07-15 11:39:56 +02:00
Haelwenn (lanodan) Monnier 173f69c854
question_validator: fix for mastodon poll expiration
Mastodon activities do not have a "closed" field, this could be seen on
https://pouet.it/users/lanodan_tmp/statuses/104345126997708380
which runs Mastodon 3.1.4 (SDF runs 3.1.2)
2020-07-15 11:39:56 +02:00
Haelwenn (lanodan) Monnier 47ba796f41
create_question_validator: remove validate_recipients_match 2020-07-15 11:39:55 +02:00
Haelwenn (lanodan) Monnier ad867ccfa1
fetcher: Reinject Question through validator 2020-07-15 11:39:55 +02:00
Haelwenn (lanodan) Monnier 6b9c4bc1f1
fetcher: more descriptive variable names 2020-07-15 11:39:55 +02:00
Haelwenn (lanodan) Monnier 4644a8bd10
Fix multiple-choice poll detection 2020-07-15 11:39:55 +02:00
Haelwenn (lanodan) Monnier 10bd08ef07
transmogrifier_test: test date, anyOf and oneOf completely 2020-07-15 11:39:54 +02:00
Haelwenn (lanodan) Monnier 89a2433154
QuestionOptionsValidator: inline schema for replies 2020-07-15 11:39:54 +02:00
Haelwenn (lanodan) Monnier c5efaf6b00
AnswerValidator: Create 2020-07-15 11:39:54 +02:00
Haelwenn (lanodan) Monnier 7bcd7a9595
QuestionValidator: Create 2020-07-15 11:39:53 +02: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 

See merge request 
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 
2020-07-14 18:05:36 +00:00
feld 2909dc873b Merge branch '1940-admin-token-oauthless-auth' into 'develop'
[] Reinstated OAuth-less `admin_token` authentication

Closes 

See merge request 
2020-07-14 16:48:26 +00:00
Ivan Tashkinov 124b4709dc [] 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 

See merge request 
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 [] 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 [] Reinstated OAuth-less `admin_token` authentication. Refactored UserIsAdminPlug (freed from checking admin scopes presence). 2020-07-19 21:35:57 +03:00
Maksim Pechnikov 3062f86613 added generated `pleroma.env` 2020-07-14 09:05:34 +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 

See merge request 
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 
2020-07-13 15:43:46 +00:00
feld 63fef0c0fb Merge branch 'chore/improve-database-config-docs' into 'develop'
Improve database config migration and add documentation

See merge request 
2020-07-13 15:42:20 +00:00
Mark Felder d1cd3f4ec0 Lint 2020-07-13 10:32:17 -05:00
Mark Felder e1908a5270 Pick up env for both source and OTP installs 2020-07-13 08:39:56 -05: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 

See merge request 
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
Mark Felder 46b123cded Still allow passing the arg, but fallback to MIX_ENV 2020-07-12 10:59:12 -05:00
Mark Felder 133004e22d Improve database config migration and add documentation 2020-07-12 10:38:07 -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  and 

See merge request 
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 
Fixes 
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 

See merge request 
2020-07-10 09:22:14 +00:00
lain 48f98a2748 Merge branch 'mix-tasks-improvement' into 'develop'
Mix tasks improvement

See merge request 
2020-07-10 08:58:44 +00:00
Haelwenn 4ac6e6283f Merge branch 'develop' into 'admin-api-user-credentials-for-remote-users-fix'
# Conflicts:
#   CHANGELOG.md
2020-07-10 08:55:15 +00:00
Haelwenn 5ea6387572 Merge branch 'user-search-nickname-rank-boost' into 'develop'
Improved search results for localized nickname match

See merge request 
2020-07-10 08:49:14 +00:00
Haelwenn (lanodan) Monnier cc7153cd82
user: Add support for custom emojis in profile fields 2020-07-09 19:21:58 +02:00
Mark Felder 2b979cc90c Add AdminFE reports URL to report emails 2020-07-09 11:55:40 -05:00
Alexander Strizhakov 79707e879d
cleap up 2020-07-09 19:13:16 +03:00
Alexander Strizhakov d5fcec8315
fix for info after tag/untag user 2020-07-09 18:59:48 +03:00
Mark Felder d23804f191 Use the Pleroma.Config alias 2020-07-09 10:53:51 -05:00
Mark Felder 49c4e24953 Merge branch 'develop' into fix/csp-for-captcha 2020-07-09 09:08:59 -05:00
lain 8ca1f3e8c6 Merge branch '1723-token-fixes' into 'develop'
AccountController: Return scope in proper format.

Closes 

See merge request 
2020-07-09 13:10:05 +00:00
lain f4469dc741 Merge branch 'features/favicons' into 'develop'
Add support for remote favicons

See merge request 
2020-07-09 13:09:31 +00:00
Haelwenn bdc7b60610 Merge branch '1925-muting-reblogs' into 'develop'
AccountController: Fix muting / unmuting reblogs.

Closes 

See merge request 
2020-07-09 12:10:26 +00:00
eugenijm c2be0da79f 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` 2020-07-09 14:57:40 +03:00
Haelwenn 68036f5a3b Merge branch 'follow-pipeline' into 'develop'
Handle `Follow` activities with the pipeline

See merge request 
2020-07-09 10:32:24 +00:00
lain 6d688f14fa Merge branch 'bugfix/status-deletion' into 'develop'
 fix activity deletion

See merge request 
2020-07-09 09:37:52 +00:00
Alexander Strizhakov 4cbafcef0c
load default config in mix tasks 2020-07-09 11:17:43 +03:00
Ivan Tashkinov 123352ffa1 Removed unused trigram index on `users`. Fixed `users_fts_index` usage. 2020-07-08 22:50:15 +03:00
lain 00e54f8fe7 ActivityPub: Remove `follow` and fix issues. 2020-07-08 17:07:24 +02:00
lain 9dda8b5427 CommonAPI: Switch to pipeline for following. 2020-07-08 15:40:56 +02:00
Alexander Strizhakov b28cc15459
don't restart pleroma in mix tasks 2020-07-08 15:58:47 +03:00
Alexander Strizhakov 72ad3a66f4
don't fully start pleroma in mix tasks 2020-07-08 15:58:47 +03:00
lain 172f4aff8e Transmogrifier: Move following to the pipeline. 2020-07-08 14:30:53 +02:00
lain 29fa75d00d Notification: For follows, notify the followed. 2020-07-08 14:29:29 +02:00
lain 7d0e2b3fdd Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into follow-pipeline 2020-07-08 13:23:07 +02:00
lain cdc153db31 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into issue/1880 2020-07-08 13:21:58 +02:00
lain 6335b32aa8 Merge branch '1895-hashtag-timeline-restrict-unauthenticated-fix' into 'develop'
[] Made hashtag timeline respect `:restrict_unauthenticated` instance setting

Closes 

See merge request 
2020-07-08 10:55:03 +00:00
Ivan Tashkinov 704a383055 Improved search results for localized nickname match. Tweaked user search to rank nickname matches higher than name matches. 2020-07-08 13:14:18 +03:00
Ivan Tashkinov a6495f4a68 [] credo fix. 2020-07-08 12:54:23 +03:00
lain c0385cf47a AccountController: Fix muting / unmuting reblogs. 2020-07-08 11:52:29 +02:00
Ivan Tashkinov 3f8370a285 [] Applied code review suggestion. 2020-07-08 12:36:44 +03:00
Maksim Pechnikov e341f81785 fixed delete `Like` activity in remove user 2020-07-08 09:06:23 +03:00
Haelwenn (lanodan) Monnier 31fef95e35
Add changelog and documentation 2020-07-08 06:29:24 +02:00
Haelwenn (lanodan) Monnier 312fc55f14
Add [:instances_favicons, :enabled] setting, defaults to false 2020-07-08 06:28:40 +02:00
Haelwenn (lanodan) Monnier 8c9df2d2e6
instance: Prevent loop of updates 2020-07-08 06:28:40 +02:00
Haelwenn (lanodan) Monnier 013e2c5057
Use instances table instead of Cachex 2020-07-08 06:28:39 +02:00
Haelwenn (lanodan) Monnier 6a679d80c9
Move get_favicon to Pleroma.Instances, use / 2020-07-08 06:28:39 +02:00
Haelwenn (lanodan) Monnier f6d09fafee
Add support for remote favicons 2020-07-08 06:28:39 +02:00
Haelwenn a8447c3803 Merge branch '1918-avatar-background-header-reset-2' into 'develop'
Resolve "Better support for resetting avatar/header/background"

Closes 

See merge request 
2020-07-08 03:25:30 +00:00
Haelwenn db13acf242 Merge branch 'fix/twitter-rich-media-preview' into 'develop'
Add "Bot" to User Agent to coerce Twitter into serving OGP <meta> tags.

Closes 

See merge request 
2020-07-08 03:05:20 +00:00
lain 8939ff39e4 Merge branch 'remove-twitter-api' into 'develop'
Remove some TwitterAPI endpoints

See merge request 
2020-07-07 18:26:07 +00:00
Ivan Tashkinov 3e08e77151 [] Made hashtag timeline respect `:restrict_unauthenticated` instance setting. 2020-07-07 20:37:11 +03:00
Mark Felder 18438a9bf0 Add "Bot" to User Agent to coerce Twitter into serving OGP <meta> tags. 2020-07-07 11:21:05 -05:00
lain c8dd973af5 AccountController: Remove unused `update_?` routes.
These were not documented and are also not used anymore.
2020-07-07 16:53:20 +02:00
lain 59cf78e412 AccountController: Allow removal / reset of user images. 2020-07-07 16:53:03 +02:00
lain 9ad305209a Merge branch 'bugfix/peertube-videos' into 'develop'
Fix getting videos from peertube

See merge request 
2020-07-07 09:14:50 +00:00
Haelwenn fa0fa4552f Merge branch 'feature/1392-support-irreversible-filters' into 'develop'
Updates for Feature/1392 support irreversible filters

Closes 

See merge request 
2020-07-07 08:23:49 +00:00
Haelwenn (lanodan) Monnier fbb9743a70
Fix getting videos from peertube 2020-07-07 09:38:38 +02:00
Haelwenn d81acb5f62 Merge branch 'description-limits' into 'develop'
Add limits to image descriptions

See merge request 
2020-07-07 03:00:52 +00:00
Mark Felder da4029391d IO list, not concatenation 2020-07-06 11:28:08 -05:00
Mark Felder 65843d92c4 Simplify the logic 2020-07-06 10:59:41 -05:00
lain a6a12b241f FollowValidator: Add basic validation. 2020-07-06 15:57:19 +02:00
lain 28feba8af4 Preloaders: Remove status_net preloader 2020-07-06 12:24:45 +02:00
lain 1963e143c5 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remove-twitter-api 2020-07-06 12:15:59 +02:00
lain 158c26d7dd StaticFE Plug: Use phoenix helper to get the requested format. 2020-07-06 12:11:10 +02:00
lain ed4f9f6a29 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into 1507-static-fe-prioritize-json 2020-07-06 12:07:56 +02:00
lain 208baf157a ActivityPub: Add new 'capabilities' to user. 2020-07-06 11:38:40 +02:00
lain 74b88c0a8b Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into chat-federation-information 2020-07-06 11:27:06 +02:00
rinpatch 69f0b286f7 Merge branch '1915-dont-filter-announce-notifications' into 'develop'
Streamer: Don't filter out announce notifications.

Closes 

See merge request 
2020-07-06 09:21:03 +00:00
lain cc8b4e48d9 InstanceView: Add chat limit, description limit 2020-07-06 11:12:37 +02:00
lain af7720237b Upload: Restrict description length 2020-07-06 11:08:13 +02:00
Alexander Strizhakov 20c27bef40
renaming back and reject nil on create 2020-07-06 09:30:42 +03:00
Alexander Strizhakov 771748db1f
Apply suggestion to lib/pleroma/filter.ex 2020-07-06 09:30:41 +03:00
Alexander Strizhakov 6558f31cda
don't filter notifications for follow and move types 2020-07-06 09:30:41 +03:00
Sergey Suprunenko 8277b29790
Restrict thread statuses that contain user's irreversible filters 2020-07-06 09:30:39 +03:00
Sergey Suprunenko 5af1bf443d
Skip notifications for statuses that contain an irreversible filtered word 2020-07-06 09:28:22 +03:00
Sergey Suprunenko 4a8c26654e
Restrict statuses that contain user's irreversible filters 2020-07-06 09:28:21 +03:00
Alexander Strizhakov 480dfafa83
don't save tesla settings into db 2020-07-06 08:48:20 +03:00
Roman Chvanikov fc1f34b851 Delete activity before sending response to client 2020-07-06 00:01:25 +03:00
Mark Felder af612bd006 Ensure all CSP parameters for remote hosts have a scheme 2020-07-05 10:11:43 -05:00
lain cf56655614 Streamer: Don't filter out announce notifications. 2020-07-04 17:11:37 +02:00
Mark Felder e9a28078ad Rename function and clarify that CSP is only strict with MediaProxy enabled 2020-07-03 17:18:22 -05:00
Mark Felder eaa59daa4c Add Captcha endpoint to CSP headers when MediaProxy is enabled.
Our CSP rules are lax when MediaProxy enabled, but lenient otherwise.

This fixes broken captcha on instances not using MediaProxy.
2020-07-03 17:06:20 -05:00
Mark Felder 4695bdd81b Merge branch 'develop' into issue/1790-updated-oban 2020-07-03 10:36:41 -05:00
lain c2a052a346 Merge branch 'features/mastoapi-2.9.0-status_text' into 'develop'
MastoAPI 2.9.0: status text on deletion

See merge request 
2020-07-03 15:06:33 +00:00
lain 9a27ef47f1 Merge branch '1912-leading-trailing-space-search' into 'develop'
SearchController: Trim query.

Closes 

See merge request 
2020-07-03 14:59:12 +00:00
lain d3efb50262 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into features/mastoapi-2.9.0-status_text 2020-07-03 16:44:31 +02:00
lain 19fbfbb767 Merge branch '1892-exclude-bots-from-search-results' into 'develop'
[] Exclusion of service actors from user search results

Closes 

See merge request 
2020-07-03 14:38:22 +00:00
lain 945e75c8e8 SearchController: Trim query. 2020-07-03 16:36:55 +02:00