308cac5a39
Merge pull request 'Add Mastodon API client, service for syncing avatars and display names' ( #225 ) from feature/mastodon_api into master
...
continuous-integration/drone/push Build is passing
Reviewed-on: #225
Reviewed-by: Greg <greg@noreply.kosmos.org>
2025-05-23 08:48:15 +00:00
7f766473ab
Fix typo
continuous-integration/drone/push Build is passing
2025-05-22 13:21:37 +04:00
171524fb83
Use production link
continuous-integration/drone/push Build is passing
2025-05-18 14:58:55 +04:00
3538067da6
Use production link
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
Release Drafter / Update release notes draft (pull_request) Successful in 2s
2025-05-18 14:58:34 +04:00
c374bcd3bc
Merge branch 'master' into feature/mastodon_api
continuous-integration/drone/push Build is running
2025-05-18 14:56:42 +04:00
655009ad7a
Add example link for PGP pubkey
continuous-integration/drone/push Build is running
2025-05-18 14:56:29 +04:00
71c9bd29ab
Merge branch 'master' into feature/mastodon_api
2025-05-18 14:46:28 +04:00
e66d134550
Log missing l param for WKD requests, return 400
continuous-integration/drone/push Build is passing
2025-05-18 14:46:04 +04:00
11167e3e43
Merge branch 'master' into feature/mastodon_api
2025-05-18 14:37:47 +04:00
ebbd87368c
Handle l param missing for WKD request
continuous-integration/drone/push Build is passing
2025-05-18 14:37:22 +04:00
7b0ebb761f
Allow display name to be removed
...
continuous-integration/drone/push Build is passing
When form field is empty
2025-05-18 14:26:09 +04:00
fb03427d59
Allow syncing a single Mastodon profile
continuous-integration/drone/push Build is passing
2025-05-17 18:56:34 +04:00
6730aae2dc
Only update other avatars in one place
...
Prevent future mistakes
2025-05-17 18:56:33 +04:00
a71aa3fda2
Don't queue job when service isn't enabled
2025-05-17 18:56:33 +04:00
92e6b1395a
Add avatar to admin user page
2025-05-17 18:56:33 +04:00
37c59b7b0c
Sync Mastodon IDs/profiles to local accounts
...
Add a new service to import some data from Mastodon accounts:
* Find users by username, store Mastodon account ID in local db when
found
* Import display name (don't overwrite existing)
* Import avatar (don't overwrite existing)
2025-05-17 18:56:30 +04:00
f0cfde560b
Add Mastodon API service class, auth token config
...
Add a new REST API service class to keep things DRY
2025-05-17 14:18:16 +04:00
c43e43d89c
Open RS apps in new tab
continuous-integration/drone/push Build is passing
2025-05-16 17:30:11 +04:00
dbbf116c52
Fix RS storage-first auth work in dev, remove token
...
continuous-integration/drone/push Build is passing
See https://github.com/remotestorage/remotestorage.js/issues/900
2025-05-16 15:59:40 +04:00
208b1f04ae
Fix web app icon component
continuous-integration/drone/push Build is passing
2025-05-16 15:38:03 +04:00
5f276ff349
Queue XmppSetAvatarJob when new avatar is uploaded
...
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
Release Drafter / Update release notes draft (pull_request) Failing after 10m9s
And let job do nothing in development for now
2025-05-15 22:04:25 +04:00
5916969447
Add job for setting avatar via XMPP
2025-05-15 20:05:53 +04:00
382c5ad10e
Return response for ejabberd API calls
2025-05-15 12:53:58 +04:00
8b3243af6b
Sort API methods alphabetically
continuous-integration/drone/push Build is passing
2025-05-15 12:19:09 +04:00
fc36fbf10c
Add get_vcard2 to ejabberd client
continuous-integration/drone/push Build is passing
2025-05-15 12:16:53 +04:00
06d2705c4c
Add private_get to ejabberd service
continuous-integration/drone/push Build is passing
2025-05-15 12:01:10 +04:00
582d339c0a
Remove feature gate for avatar upload
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
Release Drafter / Update release notes draft (pull_request) Successful in 2s
2025-05-14 18:55:26 +04:00
a098ea43bb
Add avatar URL to Webfinger when available
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2025-05-14 15:39:50 +04:00
417e346074
Do not use ActiveStorage variants, process original avatar
...
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
Variants are currently broken. So we process the original file with the
most common avatar dimensions and stripping metadata, then hash and
upload only that version.
2025-05-14 14:42:03 +04:00
1884f082ee
Add note about variants not working when not generated ad-hoc
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2025-05-12 18:07:10 +04:00
51a3652fc8
Fix S3 keys/paths for user avatars
...
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
Also fixes the avatars controller to work with all back-ends
2025-05-12 16:39:53 +04:00
46b908839d
Add avatar URL to Discourse Connect
...
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
Discourse should download and set the avatar if the user doesn't have
one set yet.
2025-05-12 15:04:56 +04:00
512f0ccca1
Add controller for rendering avatars on simple URL
2025-05-12 15:04:01 +04:00
17ffbde03a
WIP Store avatars as ActiveStorage attachments
...
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
Also push to LDAP as jpegPhoto
2025-05-11 18:43:21 +04:00
9e2210c45b
Store avatars as binary instead of base64
continuous-integration/drone/push Build is passing
2025-05-10 20:58:36 +04:00
6d7d722c5d
Add inetOrgPerson objectclass to user entries
...
refs #174
2025-05-08 16:52:54 +04:00
93aa26f430
Remove lockbox column
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
Release Drafter / Update release notes draft (pull_request) Successful in 2s
2025-05-06 20:14:25 +04:00
eae370b737
Migrate from lockbox to ActiveRecord encryption (1/2)
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2025-05-06 18:09:27 +04:00
a97bbf61a8
Fix postgresql query for deleting auth expiry job
...
continuous-integration/drone/push Build is passing
Solid Queue uses a text column, instead of a jsonb, so we need to cast
it as jsonb on the fly.
2025-05-05 17:37:58 +04:00
906468d156
Allow to immediately expire auth via job
...
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
Release Drafter / Update release notes draft (pull_request) Successful in 3s
When running the job before its schedule
2025-05-05 12:46:46 +04:00
ee5c6d86d0
Port RS auth job removal to Solid Queue
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2025-05-05 11:07:30 +04:00
aef779a59c
Switch from Sprockets to Propshaft
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
Release Drafter / Update release notes draft (pull_request) Successful in 1s
2025-04-29 17:11:21 +04:00
74b4bc3875
Upgrade Rails to 7.2
continuous-integration/drone/push Build is passing
2025-04-28 00:17:25 +04:00
646c95ecc2
Fix local/development RS auth URL
continuous-integration/drone/push Build is passing
2025-04-27 16:09:32 +04:00
7df56479a4
Fix 500 when pubkey is nil
2025-01-02 08:30:58 -05:00
339462f320
Refactor mailer options usage
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
Release Drafter / Update release notes draft (pull_request) Successful in 5s
2024-10-08 14:06:10 +02:00
c4c2d16342
Encrypt outgoing emails when possible
2024-10-08 14:05:50 +02:00
3ee76e26ab
Re-import user's pubkey on access
...
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
Sometimes, the pubkey might not be imported in the local keychain
(anymore), but at this point in the code it had been successfully
imported at least once before. So we just (re-)import every time for it
to never fail.
2024-10-08 11:34:18 +02:00
729e4fd566
Add WKD policy endpoint
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2024-09-26 23:11:21 +02:00
534e5a9d3c
Gracefully handle wrong capitalization of username
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2024-09-25 00:20:30 +02:00