Eugen Rochko
9dd8dff683
Bump version to 1.6.0rc1 ( #4768 )
2017-09-03 01:12:05 +02:00
Eugen Rochko
a187dcefa1
Instantly upgrade account to ActivityPub if we receive ActivityPub payload ( #4766 )
2017-09-03 01:11:23 +02:00
Eugen Rochko
5d170587e3
Improve client-side German i18n ( #4785 )
2017-09-02 23:21:48 +02:00
Eugen Rochko
37fdddd927
Rename "locked" to "manuallyApprovesFollowers" in ActivityPub ( #4779 )
...
See: <https://www.w3.org/wiki/Activity_Streams_extensions#as:manuallyApprovesFollowers >
2017-09-02 23:13:35 +02:00
Eugen Rochko
d3b6746173
Make "unfollow" undo pending outgoing follow request too ( #4781 )
...
* Make "unfollow" undo pending outgoing follow request too
* Add cancel button to web UI when awaiting follow request approval
* Make the hourglass button do the cancelling
2017-09-02 20:44:41 +02:00
Eugen Rochko
1b5806b744
Define missing JSON-LD properties ( #4767 )
...
Using _: property names is discouraged, as in the future,
canonicalization may throw an error when encountering that instead
of discarding it silently like it does now.
We are defining some ActivityStreams properties which we expect
to land in ActivityStreams eventually, to ensure that future versions
of Mastodon will remain compatible with this even once that happens.
Those would be `locked`, `sensitive` and `Hashtag`
We are defining a custom context inline for some properties which we
do not expect to land in any other context. `atomUri`, `inReplyToAtomUri`
and `conversation` are part of the custom defined OStatus context.
2017-09-02 14:01:23 +02:00
Eugen Rochko
1b1e025b41
Use updated ActivityStreams context (added: sharedInbox) ( #4764 )
2017-09-02 14:00:58 +02:00
Eugen Rochko
e482595a5d
Add ActivityPub handler for Delete->Actor activities ( #4761 )
2017-09-01 21:54:42 +02:00
Eugen Rochko
9c04fadec9
Finish up embed modal feature ( #4759 )
...
* Add embed button to dropdowns of in-timeline statuses
* yarn run manage:translations
2017-09-01 21:30:13 +02:00
Eugen Rochko
390bfec6da
Avoid sending some ActivityPub payloads if the receiver will get them through distribution ( #4739 )
2017-09-01 21:26:01 +02:00
Eugen Rochko
c2980d5b17
Do not rely on activity arriving exactly once after delete arrived ( #4754 )
2017-09-01 21:12:59 +02:00
Eugen Rochko
921cf3e9c8
Fix NoMethodError ( #4762 )
2017-09-01 20:50:42 +02:00
Eugen Rochko
7dc5035031
Make PreviewCard records reuseable between statuses ( #4642 )
...
* Make PreviewCard records reuseable between statuses
**Warning!** Migration truncates preview_cards tablec
* Allow a wider thumbnail for link preview, display it in horizontal layout (#4648 )
* Delete preview cards files before truncating
* Rename old table instead of truncating it
* Add mastodon:maintenance:remove_deprecated_preview_cards
* Ignore deprecated_preview_cards in schema definition
* Fix null behaviour
2017-09-01 16:20:16 +02:00
Eugen Rochko
ff7d02b236
Make first use less overwhelming with browser permissions ( #4760 )
...
- Ask for desktop notifications after 1 minute of use instead of
instantly
- Ask for protocol handler permission after 5 minutes of use
instead of instantly
2017-09-01 16:07:08 +02:00
Eugen Rochko
74437c6bff
Refactor Web::PushSubscription, remove welcome message ( #4524 )
...
* Refactor Web::PushSubscription, remove welcome message
* Add missing helper
* Use locale of the receiver on push notifications (#4519 )
* Remove unused translations
* Fix dir on notifications
2017-09-01 13:35:23 +02:00
Eugen Rochko
9a5ae09620
Remove identity context from output of LinkedDataSignature ( #4753 )
2017-08-31 21:32:09 +02:00
Eugen Rochko
d1a78eba15
Embed modal ( #4748 )
...
* Embed modal
* Proxy OEmbed requests from web UI
2017-08-31 03:38:35 +02:00
Eugen Rochko
2db9ccaf3e
Add sharedInbox to actors ( #4737 )
2017-08-31 00:02:59 +02:00
Eugen Rochko
7b8f262840
Forward ActivityPub creates that reply to local statuses ( #4709 )
...
* Forward ActivityPub creates that reply to local statuses
* Fix test
* Fix wrong signers
2017-08-30 15:37:02 +02:00
Eugen Rochko
e95bdec7c5
Update status embeds ( #4742 )
...
- Use statuses controller for embeds instead of stream entries controller
- Prefer /@:username/:id/embed URL for embeds
- Use /@:username as author_url in OEmbed
- Add follow link to embeds which opens web intent in new window
- Use redis cache in development
- Cache entire embed
2017-08-30 10:23:43 +02:00
Eugen Rochko
fcca31350d
Remove unneccesary indices ( #4738 )
...
We only look up status_pins by account_id, or account_id and status_id,
never by status_id
2017-08-30 05:04:20 +02:00
Eugen Rochko
ee72a39641
Update bundler-audit and brakeman ( #4740 )
2017-08-30 03:30:13 +02:00
Eugen Rochko
4c76402ba1
Serialize ActivityPub alternate link into OStatus deletes, handle it ( #4730 )
...
Requires moving Atom rendering from DistributionWorker (where
`stream_entry.status` is already nil) to inline (where
`stream_entry.status.destroyed?` is true) and distributing that.
Unfortunately, such XML renderings can no longer be easily chained
together into one payload of n items.
2017-08-29 16:11:05 +02:00
Eugen Rochko
15093f9113
Shorten display of large numbers on public profiles ( #4711 )
2017-08-27 17:04:45 +02:00
Eugen Rochko
26402ee2cb
Adjust RTL styles ( #4712 )
2017-08-27 13:35:18 +02:00
Eugen Rochko
0d5d11eeff
Add _:inReplyToAtomUri to ActivityPub ( #4702 )
2017-08-26 19:55:10 +02:00
Eugen Rochko
0397c58b61
Forward ActivityPub deletes to followers of rebloggers ( #4706 )
2017-08-26 18:52:53 +02:00
Eugen Rochko
884b085f53
Use Tombstone and _:atomUri in Delete activities as fallback ( #4704 )
2017-08-26 16:10:35 +02:00
Eugen Rochko
2a2698e450
Add ActivityPub serializer for Undo of Announce ( #4703 )
2017-08-26 15:32:40 +02:00
Eugen Rochko
00840f4f2e
Add handling of Linked Data Signatures in payloads ( #4687 )
...
* Add handling of Linked Data Signatures in payloads
* Add a way to sign JSON, fix canonicalization of signature options
* Fix signatureValue encoding, send out signed JSON when distributing
* Add missing security context
2017-08-26 13:47:38 +02:00
Eugen Rochko
9caa90025f
Pinned statuses ( #4675 )
...
* Pinned statuses
* yarn manage:translations
2017-08-25 01:41:18 +02:00
Eugen Rochko
cf615abbf9
Add configuration to disable private status federation over PuSH ( #4582 )
2017-08-24 17:51:32 +02:00
Eugen Rochko
c66fe2aeba
Minor performance improvement for test suite ( #4678 )
2017-08-24 13:31:55 +02:00
Eugen Rochko
c1b086a538
Fix up the applications area ( #4664 )
...
- Section it into "Development" area
- Improve UI of application form, index, and details
2017-08-23 00:59:35 +02:00
Eugen Rochko
72bb3e03fd
Support more variations of ActivityPub keyId in signature ( #4630 )
...
- Tries to avoid performing HTTP request if the keyId is an actor URI
- Likewise if the URI is a fragment URI on top of actor URI
- Resolves public key, returns owner if the owner links back to the key
2017-08-21 22:57:34 +02:00
Eugen Rochko
f391a4673a
Periodically remove expired PuSH subscribers ( #4654 )
2017-08-21 22:56:33 +02:00
Eugen Rochko
4cbb638604
Fix visual line-break glitch with .invisible parts of links ( #4655 )
2017-08-21 17:59:34 +02:00
Eugen Rochko
3534e115e5
Do not try to re-subscribe to unsubscribed accounts ( #4653 )
2017-08-21 17:32:41 +02:00
Eugen Rochko
6e9eda5331
ActivityPub migration procedure ( #4617 )
...
* ActivityPub migration procedure
Once one account is detected as going from OStatus to ActivityPub,
invalidate WebFinger cache for other accounts from the same domain
* Unsubscribe from PuSH updates once we receive an ActivityPub payload
* Re-subscribe to PuSH unless already unsubscribed, regardless of protocol
2017-08-21 01:14:40 +02:00
Eugen Rochko
74e5078795
Fix #4637 - Re-add missing doorkeeper_authorize for /api/v1/verify_credentials ( #4650 )
2017-08-21 00:41:08 +02:00
Eugen Rochko
fe5b66aa08
Handle duplicate ActivityPub activities ( #4639 )
...
* Handle duplicate ActivityPub activities
Only perform side-effects when record processed for the first time
* Fast-forward repeat follow requests
2017-08-20 16:53:47 +02:00
Eugen Rochko
412ea87306
Improve ActivityPub/OStatus compatibility ( #4632 )
...
*Note: OStatus URIs are invalid for ActivityPub. But we have them for
as long as we want to keep old OStatus-sourced content and as long as
we remain OStatus-compatible.*
- In Announce handling, if object URI is not a URL, fallback to object URL
- Do not use specialized ThreadResolveWorker, rely on generalized handling
- When serializing notes, if parent's URI is not a URL, use parent's URL
2017-08-19 18:44:48 +02:00
Eugen Rochko
774b8661bc
Revert #4616 ( #4638 )
2017-08-19 02:23:47 +02:00
Eugen Rochko
c7d2619ab1
Parse OStatus tag URIs in ActivityPub handlers when those are local ( #4631 )
2017-08-18 11:24:44 +02:00
Eugen Rochko
4edf9d849f
Make ActivityPub::TagManager#local_uri? recognize local URIs with ports ( #4628 )
2017-08-18 03:21:59 +02:00
Eugen Rochko
10489b4e4a
If url attribute not present in Note, fallback to id attribute ( #4629 )
2017-08-18 02:29:12 +02:00
Eugen Rochko
40c45f5dd9
Put ActivityPub alternate link into Atom, prefer it when processing Atom ( #4623 )
2017-08-18 01:03:18 +02:00
Eugen Rochko
116b8a6363
Fix #4607 - Accept/reject activities use FollowRequest, which has inverse relations ( #4616 )
2017-08-17 22:15:37 +02:00
Eugen Rochko
ad892dbc0c
Add _:atomUri property for deduplicating OStatus/ActivityPub legacy records ( #4593 )
2017-08-17 21:35:00 +02:00
Eugen Rochko
ca7ea1aba9
Redesign public profiles ( #4608 )
...
* Redesign public profiles
* Responsive design
* Change public profile status filtering defaults and add options
- No longer displays private/direct toots even if you are permitted access
- By default omits replies
- "With replies" option
- "Media only" option
* Redesign account grid cards
* Fix style issues
2017-08-16 17:12:58 +02:00
Eugen Rochko
4fcbb1f838
Re-add missing transaction around status-from-OStatus creation ( #4603 )
2017-08-14 21:37:21 +02:00
Eugen Rochko
26d26644ac
Require "inbox" to be set on actor to be ActivityPub-ready ( #4595 )
2017-08-14 11:27:25 +02:00
Eugen Rochko
3c6503038e
Add protocol handler. Handle follow intents ( #4511 )
...
* Add protocol handler. Handle follow intents
* Add share intent
* Improve code in intents controller
* Adjust share form CSS
2017-08-14 04:53:31 +02:00
Eugen Rochko
6df8bd277b
Set correct content-type for ActivityPub JSON ( #4592 )
2017-08-14 04:16:43 +02:00
Eugen Rochko
4e75f0d889
Hook up URL-based resource look-up to ActivityPub ( #4589 )
2017-08-14 02:29:36 +02:00
Eugen Rochko
a2aeacbfee
Add alternate links to ActivityPub resources from HTML/HEAD variants ( #4586 )
2017-08-13 00:45:04 +02:00
Eugen Rochko
b7370ac8ba
ActivityPub delivery ( #4566 )
...
* Deliver ActivityPub Like
* Deliver ActivityPub Undo-Like
* Deliver ActivityPub Create/Announce activities
* Deliver ActivityPub creates from mentions
* Deliver ActivityPub Block/Undo-Block
* Deliver ActivityPub Accept/Reject-Follow
* Deliver ActivityPub Undo-Follow
* Deliver ActivityPub Follow
* Deliver ActivityPub Delete activities
Incidentally fix #889
* Adjust BatchedRemoveStatusService for ActivityPub
* Add tests for ActivityPub workers
* Add tests for FollowService
* Add tests for FavouriteService, UnfollowService and PostStatusService
* Add tests for ReblogService, BlockService, UnblockService, ProcessMentionsService
* Add tests for AuthorizeFollowService, RejectFollowService, RemoveStatusService
* Add tests for BatchedRemoveStatusService
* Deliver updates to a local account to ActivityPub followers
* Minor adjustments
2017-08-13 00:44:41 +02:00
Eugen Rochko
ccdd5a9576
Add serializing/unserializing of "locked" actor attribute ( #4585 )
2017-08-12 17:41:03 +02:00
Eugen Rochko
40be4ea239
Extend Devise remember_me longevity to 1 year instead of 2 weeks ( #4587 )
...
Force SSL only cookies for remember_me, adjust confirmation
expiration time to fit with the user cleanup scheduler
2017-08-12 16:30:59 +02:00
Eugen Rochko
3d47154c20
Only PuSH-resubscribe to OStatus accounts ( #4583 )
2017-08-12 02:54:54 +02:00
Eugen Rochko
81c1303cd6
Handle ActivityPub follows correctly ( #4571 )
...
* Handle ActivityPub follows correctly
ActivityPub follows are follow-requests. Always require an Accept.
If account is not locked, auto-accept.
* Handle ActivityPub Accept/Reject-Follow
* Fix wrong method
* Fix wrong class
2017-08-10 22:33:12 +02:00
Eugen Rochko
fdea173237
Add Digest header to requests with body, handle acct and URI keyId ( #4565 )
2017-08-09 23:54:14 +02:00
Eugen Rochko
dd7ef0dc41
Add ActivityPub inbox ( #4216 )
...
* Add ActivityPub inbox
* Handle ActivityPub deletes
* Handle ActivityPub creates
* Handle ActivityPub announces
* Stubs for handling all activities that need to be handled
* Add ActivityPub actor resolving
* Handle conversation URI passing in ActivityPub
* Handle content language in ActivityPub
* Send accept header when fetching actor, handle JSON parse errors
* Test for ActivityPub::FetchRemoteAccountService
* Handle public key and icon/image when embedded/as array/as resolvable URI
* Implement ActivityPub::FetchRemoteStatusService
* Add stubs for more interactions
* Undo activities implemented
* Handle out of order activities
* Hook up ActivityPub to ResolveRemoteAccountService, handle
Update Account activities
* Add fragment IDs to all transient activity serializers
* Add tests and fixes
* Add stubs for missing tests
* Add more tests
* Add more tests
2017-08-08 21:52:15 +02:00
Eugen Rochko
41c3389d76
Bump to 1.5.1
2017-08-06 23:53:25 +02:00
Eugen Rochko
61a06eb328
Update goldfinger to 2.0.1, see tootsuite/goldfinger#5 ( #4527 )
2017-08-05 15:29:52 +02:00
Eugen Rochko
df605f0f8b
Add "signed in as" header to some pages ( #4523 )
2017-08-05 04:24:58 +02:00
Eugen Rochko
724be2d5fe
Ignore some locale keys that can but do not need to be translated ( #4515 )
2017-08-04 04:42:28 +02:00
Eugen Rochko
559fd08845
Bump to 1.5.0
2017-08-01 15:12:07 +02:00
Eugen Rochko
9b247c3d88
Bump to 1.5.0rc3
2017-07-31 15:28:36 +02:00
Eugen Rochko
c7cc806251
Simplify web UI character counter logic ( #4463 )
2017-07-31 15:19:48 +02:00
Eugen Rochko
e1fcad34a9
Fix length validator counting things that look like URIs like URLs ( #4462 )
...
URI.extract is too strong, not limited to URLs, matched real text.
Same issue was present in language detector.
2017-07-31 05:06:20 +02:00
Eugen Rochko
53b2b1b238
Count all URLs in text as 23 characters flat, do not count domain part of usernames ( #4427 )
...
* Count all URLs in text as 23 characters flat, do not count domain part of usernames
* Add new status text counting logic to web UI
2017-07-29 00:06:29 +02:00
Eugen Rochko
f0bb2c6d1e
Fix web push notifications "boost" icon not being loaded (regression from #4426 ) ( #4431 )
2017-07-28 20:26:54 +02:00
Eugen Rochko
13bb1ddc7f
Use consistent icons for web push notifications, same as web UI ( #4426 )
2017-07-28 18:13:42 +02:00
Eugen Rochko
fdb65dcbee
Bump to 1.5.0rc2
2017-07-28 17:22:41 +02:00
Eugen Rochko
4e2f2fab73
Fix guard clause in WebPushNotificationWorker ( #4421 )
2017-07-28 17:21:28 +02:00
Eugen Rochko
6e186b9c77
When PuSH subscribe attempts are exhausted, unsubscribe ( #4422 )
2017-07-28 17:21:14 +02:00
Eugen Rochko
b3c44e95a9
Improve actions modal style ( #4423 )
2017-07-28 15:30:53 +02:00
Eugen Rochko
8c0dd33ce4
Fix current session not being displayed in sessions list ( #4424 )
2017-07-28 15:30:06 +02:00
Eugen Rochko
6270f9ce34
Fix #3189 - Share CSRF secret between main app and Sidekiq Web ( #4383 )
2017-07-28 04:36:42 +02:00
Eugen Rochko
92cb451da8
Fix #4026 - Accept backup codes for disabling 2FA ( #4382 )
2017-07-26 23:36:33 +02:00
Eugen Rochko
55bee84c97
Fix infinite scroll fluidity ( #4381 )
2017-07-26 23:35:03 +02:00
Eugen Rochko
07d93716aa
Improve remote profile disclaimer ( #4342 )
...
* Improve remote profile disclaimer
* yarn run manage:translations
2017-07-24 20:05:29 +02:00
Eugen Rochko
88b5e0b703
Use the "m" version of the logo for favicons ( #4345 )
2017-07-24 19:54:59 +02:00
Eugen Rochko
1306d637a2
Fix oddities with public profile CSS ( #4341 )
...
* Fix oddities with public profile CSS
* Remove trailing whitespace
2017-07-24 17:56:50 +02:00
Eugen Rochko
029f2c4545
Redesign /terms page ( #4338 )
...
* Redesign /terms page
* Fix tests
* Remove unused keys
2017-07-24 17:15:15 +02:00
Eugen Rochko
a549d1ae6b
Bump to 1.5.0rc1 ( #4318 )
2017-07-24 16:21:08 +02:00
Eugen Rochko
467456f7a1
Move clean up of unconfirmed users to sidekiq-scheduler ( #4336 )
...
* Move clean up of unconfirmed users to sidekiq-scheduler
* mastodon:daily is now deprecated
2017-07-24 16:17:55 +02:00
Eugen Rochko
2374d63536
Redesign extended information page ( #4322 )
...
* Redesign extended information page
* Remove unused keys
* Add $ui-base-lighter-color variable to SCSS
2017-07-24 15:09:08 +02:00
Eugen Rochko
de985a30bc
Run i18n-tasks normalize ( #4335 )
2017-07-24 14:30:10 +02:00
Eugen Rochko
ed4c754fff
Add background to media modal ( #4317 )
2017-07-23 20:28:31 +02:00
Eugen Rochko
1e0c7a0afc
Add loading indicator animation ( #4316 )
2017-07-23 20:28:18 +02:00
Eugen Rochko
3a3b556065
Improve noscript message and style ( #4315 )
2017-07-23 20:28:06 +02:00
Eugen Rochko
dd28b557ae
Update README header with logo
2017-07-23 02:46:10 +02:00
Eugen Rochko
0e0f18ce7c
New logo ( #4306 )
...
* Add new logo
* Remove unused images
2017-07-23 02:40:39 +02:00
Eugen Rochko
7964bfccdb
Add rake task mastodon:feeds:build to regenerate all active users' feeds ( #4303 )
2017-07-23 01:15:04 +02:00
Eugen Rochko
3c515f2cd2
Run yarn run manage:translations and i18n-tasks normalize ( #4302 )
2017-07-23 01:14:57 +02:00
Eugen Rochko
311871eefc
Turn clouds on landing page into SVGs, use SCSS variables to color them ( #4299 )
2017-07-22 16:36:54 +02:00
Eugen Rochko
a929f7e6ac
Fix #4172 - Mutes now block notifications ( #4300 )
2017-07-22 16:36:36 +02:00
Eugen Rochko
8d6c3cd48a
Fix sessions being replaced needlessly ( #4292 )
2017-07-22 01:09:10 +02:00