Commit Graph
100 Commits
Author SHA1 Message Date
raucao 393f85e45c WIP Add member/contributor status to users
continuous-integration/drone/push Build is passing
2025-05-27 13:32:58 +04:00
raucao 4bf6985b87 Fix wrong matcher for custom LDAP attribute
continuous-integration/drone/push Build is passing
389ds doesn't like case-insensitive matches for 7-bit ASCII strings
2025-05-23 14:08:41 +04:00
raucao 7f766473ab Fix typo
continuous-integration/drone/push Build is passing
2025-05-22 13:21:37 +04:00
raucao c1bac2625c Only log exception to stdout
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2025-05-21 16:42:49 +04:00
raucao c5c6765d67 Log LDAP exceptions
continuous-integration/drone/push Build is passing
2025-05-21 16:29:52 +04:00
raucao 171524fb83 Use production link
continuous-integration/drone/push Build is passing
2025-05-18 14:58:55 +04:00
raucao 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
raucao c374bcd3bc Merge branch 'master' into feature/mastodon_api
continuous-integration/drone/push Build is running
2025-05-18 14:56:42 +04:00
raucao 655009ad7a Add example link for PGP pubkey
continuous-integration/drone/push Build is running
2025-05-18 14:56:29 +04:00
raucao 71c9bd29ab Merge branch 'master' into feature/mastodon_api 2025-05-18 14:46:28 +04:00
raucao 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
raucao 11167e3e43 Merge branch 'master' into feature/mastodon_api 2025-05-18 14:37:47 +04:00
raucao ebbd87368c Handle l param missing for WKD request
continuous-integration/drone/push Build is passing
2025-05-18 14:37:22 +04:00
raucao 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
raucao fb03427d59 Allow syncing a single Mastodon profile
continuous-integration/drone/push Build is passing
2025-05-17 18:56:34 +04:00
raucao ad138f715c Update doc 2025-05-17 18:56:34 +04:00
raucao 6730aae2dc Only update other avatars in one place
Prevent future mistakes
2025-05-17 18:56:33 +04:00
raucao a71aa3fda2 Don't queue job when service isn't enabled 2025-05-17 18:56:33 +04:00
raucao 92e6b1395a Add avatar to admin user page 2025-05-17 18:56:33 +04:00
raucao 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
raucao c291765777 Add mastodon_id to users 2025-05-17 16:44:13 +04:00
raucao 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
raucao c43e43d89c Open RS apps in new tab
continuous-integration/drone/push Build is passing
2025-05-16 17:30:11 +04:00
raucao 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
raucao 208b1f04ae Fix web app icon component
continuous-integration/drone/push Build is passing
2025-05-16 15:38:03 +04:00
raucao 8049f81b73 Merge pull request 'Set XMPP avatar when new avatar is uploaded' (#224) from feature/ejabberd_pep into master
continuous-integration/drone/push Build is running
Reviewed-on: #224
2025-05-16 11:37:29 +00:00
raucao 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
raucao 5916969447 Add job for setting avatar via XMPP 2025-05-15 20:05:53 +04:00
raucao 382c5ad10e Return response for ejabberd API calls 2025-05-15 12:53:58 +04:00
raucao 8b3243af6b Sort API methods alphabetically
continuous-integration/drone/push Build is passing
2025-05-15 12:19:09 +04:00
raucao fc36fbf10c Add get_vcard2 to ejabberd client
continuous-integration/drone/push Build is passing
2025-05-15 12:16:53 +04:00
raucao 06d2705c4c Add private_get to ejabberd service
continuous-integration/drone/push Build is passing
2025-05-15 12:01:10 +04:00
raucao 03be2e09e6 Merge pull request 'User avatars' (#223) from feature/user_avatars into master
continuous-integration/drone/push Build is passing
Reviewed-on: #223
Reviewed-by: Greg <greg@noreply.kosmos.org>
2025-05-14 14:58:15 +00:00
raucao 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
raucao 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
raucao 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
raucao 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
raucao 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
raucao 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
raucao 512f0ccca1 Add controller for rendering avatars on simple URL 2025-05-12 15:04:01 +04:00
raucao 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
raucao 9e2210c45b Store avatars as binary instead of base64
continuous-integration/drone/push Build is passing
2025-05-10 20:58:36 +04:00
raucao 6d7d722c5d Add inetOrgPerson objectclass to user entries
refs #174
2025-05-08 16:52:54 +04:00
raucao 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
raucao 50110c12b9 Remove lockbox gem
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2025-05-06 20:01:01 +04:00
raucao 95843aee6d Remove credentials files
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2025-05-06 19:50:27 +04:00
raucao 84ed4b2de2 Remove old ln columns from users table
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2025-05-06 19:47:58 +04:00
raucao 931624cf95 Add encryption credentials to test env
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2025-05-06 18:14:26 +04:00
raucao 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
raucao 15a9fdec3e Make RS auth work by default in dev with Docker Compose 2025-05-06 18:07:52 +04:00
raucao 3d8619532b Refactor LDAP config
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
* Move credentials to ENV vars in prod
* Use same configs in dev and prod
* Make UID attribute and admin DN configurable
2025-05-06 15:32:59 +04:00
raucao d56edb34f1 Remove SMTP credentials from Rails credentials
Already unused
2025-05-06 15:08:46 +04:00
raucao 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
raucao 5a523fd220 Merge pull request 'Refactor database configs' (#220) from chore/db_configs into master
continuous-integration/drone/push Build is passing
Reviewed-on: #220
2025-05-05 12:54:22 +00:00
raucaoandgreg 889c9ae824 Refactor database configs
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
* Move postgres credentials to ENV vars
* Allow postgres in development
* Allow SQlite in production
* Refactor optional lndhub db config

Co-authored-by: Greg Karékinian <greg@karekinian.com>
2025-05-05 15:25:25 +04:00
raucao e686cf42e8 Merge pull request 'Switch from Sidekiq to Solid Queue' (#219) from dev/sidekiq_to_solidqueue into master
continuous-integration/drone/push Build is passing
Reviewed-on: #219
Reviewed-by: Greg <greg@noreply.kosmos.org>
2025-05-05 11:24:56 +00:00
raucao 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
raucao 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
raucao d1eea85b04 Add Redis gem explicitly, remove sidekiq require
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2025-05-04 18:14:49 +04:00
raucao ecd814641a Remove Sidekiq initializer
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2025-05-04 17:44:37 +04:00
raucao b1dd5800b2 Update lockfile
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2025-05-04 17:42:31 +04:00
raucao 0cad4cdcfe WIP Switch from Sidekiq to Solid Queue
continuous-integration/drone/push Build is running
continuous-integration/drone/pr Build is failing
2025-05-04 17:40:33 +04:00
raucao 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
raucao 1ddecab2c3 Upgrade Rails to 8.0
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2025-04-28 17:49:54 +04:00
raucao 74b4bc3875 Upgrade Rails to 7.2
continuous-integration/drone/push Build is passing
2025-04-28 00:17:25 +04:00
raucao 646c95ecc2 Fix local/development RS auth URL
continuous-integration/drone/push Build is passing
2025-04-27 16:09:32 +04:00
raucao fb054ae455 Add task for generating ctags
continuous-integration/drone/push Build is passing
2025-04-26 12:37:10 +04:00
raucao 536052e9bf Merge pull request 'Upgrade strfry/deno, port strfry policies to @nostrify/policies' (#214) from chore/upgrade_strfry_deno into master
continuous-integration/drone/push Build is passing
Reviewed-on: #214
2025-04-18 10:51:35 +00:00
raucao b29a0abb0b Document strfry integration
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
2025-04-16 17:34:10 +04:00
raucao 29ff486683 Port strfry policies to @nostrify/policies
Use packages from JSR and adapt code for new policy APIs
2025-04-15 19:01:22 +04:00
raucao e53b9dd186 Upgrade strfry docker image
Contains latest strfry (1.0.4) and deno (2.2.10)
2025-04-15 19:00:52 +04:00
raucao a2921297fe Fix seeds
The CreateAccount service has moved to a namespace
2025-04-11 16:14:44 +04:00
raucao 7df56479a4 Fix 500 when pubkey is nil 2025-01-02 08:30:58 -05:00
raucao 8aa3ca9e23 Merge pull request 'Let users upload their OpenPGP public key, and serve WKD response' (#205) from feature/191-gpg_keys_wkd into master
continuous-integration/drone/push Build is passing
Reviewed-on: #205
Reviewed-by: galfert <garret.alfert@gmail.com>
2024-10-14 14:08:31 +00:00
raucao 3ad1d03785 Merge pull request 'Encrypt all system emails for users with PGP key' (#207) from feature/encrypted_system_emails into feature/191-gpg_keys_wkd
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
Release Drafter / Update release notes draft (pull_request) Successful in 4s
Reviewed-on: #207
Reviewed-by: galfert <garret.alfert@gmail.com>
2024-10-14 13:39:01 +00:00
raucao e258a8bd27 Merge pull request 'Use ASCII format for nostrKey LDAP schema' (#206) from chore/nostr_key_ldap_schema into master
continuous-integration/drone/push Build is passing
Reviewed-on: #206
Reviewed-by: galfert <garret.alfert@gmail.com>
2024-10-10 14:18:31 +00:00
raucao 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
raucao c4c2d16342 Encrypt outgoing emails when possible 2024-10-08 14:05:50 +02:00
raucao 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
raucao 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
raucao 8ad6adbaeb Use ASCII format for nostrKey LDAP schema
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
Release Drafter / Update release notes draft (pull_request) Failing after 10m11s
No need for UTF-8
2024-09-25 18:35:48 +02:00
raucao 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
raucao 1b72c97f42 Remove obsolete code 2024-09-25 00:17:30 +02:00
raucao bfd8ca16a9 Merge branch 'master' into feature/191-gpg_keys_wkd 2024-09-25 00:16:39 +02:00
raucao 64de4deddd Fix serviceEnabled indicator on admin page
continuous-integration/drone/push Build is passing
2024-09-24 21:38:01 +02:00
raucao 9f6fa6deba Remove example link
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
Until we have a live example on kosmos.org
2024-09-23 20:36:05 +02:00
raucao 37b106e73c Whitespace
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2024-09-23 19:22:52 +02:00
raucao c3f1f97e1a Add display name and PGP key to admin user page
Link the key to the ASCII Armor WKD endpoint, if it contains the user's
account address
2024-09-23 19:21:59 +02:00
raucao 4a677178e8 Add Web Key Directory endpoint
Serve public keys in binary and armored text, if they contain a user's
account address.
2024-09-23 19:20:10 +02:00
raucao 3042a02a17 Allow users to update their OpenPGP pubkey
continuous-integration/drone/push Build is passing
2024-09-23 18:13:39 +02:00
raucao 118fddb497 Document URLs for settings controller actions
No need to read the route sources all the time
2024-09-23 16:07:02 +02:00
raucao ba683a7b95 Move some Rails app services to UserManager namespace
continuous-integration/drone/push Build is passing
2024-09-23 16:03:02 +02:00
raucao 90a8a70c15 Add OpenPGP key to LDAP directory and User model
continuous-integration/drone/push Build is passing
2024-09-23 15:20:00 +02:00
raucao 8f7994d82e 0.10.0
continuous-integration/drone/tag Build is passing
continuous-integration/drone/push Build is passing
2024-09-18 15:49:07 +02:00
raucao a7d0e71ab6 Fix spec
continuous-integration/drone/push Build is passing
2024-09-18 14:46:46 +02:00
raucao 27d9f73c61 Set host for RS auth url
continuous-integration/drone/push Build is failing
With X-Forwarded-Host set on the proxied request, Rails uses that host
for URLs. But we need it to be the accounts domain.
2024-09-14 17:17:09 +02:00
raucao ed3de8b16f Allow CORS for all LNURL endpoints
continuous-integration/drone/push Build is passing
2024-09-14 16:46:14 +02:00
raucao d7b4c67953 Fix config when set to empty string
continuous-integration/drone/push Build is passing
2024-09-14 16:40:22 +02:00
raucao ac77e5b7c1 Allow ENV var for new setting
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-09-11 16:31:04 +02:00
raucao e544c28105 Config for separate primary domain Nostr pubkey
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
Allow to configure a separate key for the NIP-05 address of the primary
domain vs the accounts domain.
2024-09-11 16:28:12 +02:00