Commit Graph

79 Commits

Author SHA1 Message Date
raucao 55c63be9e2 Memoize instance variable 2025-05-28 18:39:48 +04:00
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 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 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 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 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 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 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 3042a02a17 Allow users to update their OpenPGP pubkey
continuous-integration/drone/push Build is passing
2024-09-23 18:13:39 +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 ef2a37e2bf Sort user services in LDAP entry
Makes it predictable for programmatic comparisons (e.g. tests)
2024-09-04 13:05:36 +02:00
raucao 49d24990b4 Add zap model, user relation 2024-05-04 17:05:34 +02:00
raucao 5685e1b7bc Move lndhub invoice creation to service 2024-04-16 20:19:15 +02:00
raucao 819ecf6ad8 Add #service_enabled? method to user model 2024-04-04 13:28:09 +03:00
raucao 0367450c4b Replace hyphen with underscore in Mastodon address
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
Unfortunately, Mastodon only allows underscores for usernames, and
reversely, akkounts only allows hyphens and no underscores.
2024-03-29 09:08:15 +04:00
raucao 80e69df75c Add global setting for default services, enable for preconfirmed accounts
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
Co-authored-by: Greg Karékinian <greg@karekinian.com>
2024-03-28 17:21:20 +04:00
raucao 5a3adba603 Move nostr pubkeys to LDAP attribute
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
closes #173
2024-03-17 11:04:11 +01:00
raucao 4217ba52e0 Switch service LDAP attribute to serviceEnabled
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
Improve internal naming on the way
2024-03-13 16:41:49 +01:00
raucao 179a82d2dd Use keyword arguments for ApplicationService calls
Not all services are using keywords, which breaks those calls in Ruby 3
2024-02-02 15:50:25 +02:00
raucao 68c5758ecc Update dependencies, upgrade to Rails 7.1, require Ruby 3.x 2024-02-02 14:25:47 +02:00
raucao c32fc51aab Do not enable email service by default
continuous-integration/drone/push Build is failing
2024-01-26 09:38:38 +03:00
raucao 84220beb1c Merge pull request 'Add email service and settings' (#154) from feature/email_service into master
continuous-integration/drone/push Build is passing
Reviewed-on: #154
Reviewed-by: galfert <garret.alfert@gmail.com>
2024-01-22 09:01:18 +00:00
raucao b4f0c60ea0 Update nostr gem, switch to Ruby for bech32 encoding
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2024-01-15 12:54:58 +03:00
raucao 958d18d61a Add email service and settings 2024-01-10 18:30:05 +03:00
Râu Cao 03a1d9f277 Allow existing user records with reserved usernames to be saved
continuous-integration/drone/push Build is running
2023-11-01 22:26:53 +01:00
Râu Cao d5ab532947 Store and retrieve avatars in/from LDAP exclusively
continuous-integration/drone/push Build is failing
No need to keep them in two places at the same time. We can fetch them
from LDAP whenever we want to do something with them.
2023-09-06 20:42:26 +02:00
Râu Cao 50c63d5c38 Update user avatar in LDAP 2023-09-06 19:02:07 +02:00
Râu Cao 64d09cfb7f Use variant declarations instead of custom methods 2023-09-06 12:38:47 +02:00
Râu Cao def44618ef Comments
continuous-integration/drone/push Build is passing
2023-09-06 12:16:00 +02:00
Râu Cao 9e5aeaf572 Add user avatars 2023-09-06 12:15:53 +02:00
Râu Cao b7fa4b012a Allow Mastodon address domain to be different from primary domain
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-08-13 12:27:05 +02:00
Râu Cao 138f13c1a0 Add note
continuous-integration/drone/push Build is passing
2023-08-07 18:16:40 +02:00
galfert 716d4b944a Merge branch 'master' into feature/rs-oauth
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
# Conflicts:
#	app/models/user.rb
#	config/routes.rb
#	db/schema.rb
2023-06-20 14:07:46 +02:00
Râu Cao beaafa5d7e Make nostr pubkey unique globally 2023-06-16 14:35:56 +02:00
Râu Cao 49de4007ab Settings page for adding verified nostr pubkeys 2023-06-16 14:22:30 +02:00
Râu Cao 445cdfa024 Only validate display name when updated
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
Otherwise we needlessly fetch the validated one from LDAP every time a
model is saved.
2023-05-27 20:11:01 +02:00
Râu Cao f74227fedb Allow users to set/update their display name in LDAP
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2023-05-27 19:59:49 +02:00
Râu Cao 7b321577db Update LDAP mail attribute when re-confirming email 2023-05-25 16:55:27 +02:00
Râu Cao cb2197893c Merge branch 'master' into feature/default_chatrooms
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
2023-04-18 17:00:48 +02:00
Râu Cao eeabbdb7df Merge branch 'master' into feature/rs-oauth
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-04-13 15:02:51 +02:00
raucao 7a50bd23d6 Merge pull request 'Add user preferences and configurable notifications' (#113) from feature/user_preferences into master
continuous-integration/drone/push Build is passing
Reviewed-on: #113
Reviewed-by: galfert <garret.alfert@gmail.com>
2023-04-11 21:04:46 +00:00
Râu Cao ad90fcd539 Add specs for xmpp default bookmarks, refactor xmpp job usage
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-04-08 16:37:21 +02:00
Râu Cao 7a193d6647 Add comment
continuous-integration/drone/push Build is passing
2023-04-06 16:25:01 +02:00
Râu Cao 4e2e13108c Refactor user preferences, add defaults from file
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
Update release notes draft
* Turn prefs into a flat hash structure, since nesting is not worth the
trouble
* Add a custom serializer class for prefs
* Add a config file for defaults and merge set prefs with unset ones
* Use booleans for "true" and "false", and integers where appropriate
2023-04-05 17:02:35 +02:00
Râu Cao 595bb03c5a Do not exchange XMPP contacts when turned off by inviter
continuous-integration/drone/push Build is running
2023-04-04 12:45:13 +02:00
Râu Cao 62cd0eb7d1 Re-rename "ejabberd" service to "xmpp"
Shouldn't matter which implementation is integrated if someone adds
another one
2023-04-04 12:29:39 +02:00
Râu Cao 23821f9e65 Add preferences to user model 2023-04-04 12:27:49 +02:00
raucao c1f275463e Merge pull request 'Add Redis, Sidekiq to Docker Compose setup' (#110) from feature/docker-compose_sidekiq into master
continuous-integration/drone/push Build is passing
Reviewed-on: #110
Reviewed-by: galfert <garret.alfert@gmail.com>
2023-03-31 09:09:46 +00:00
raucao 324809f77e Merge pull request 'Expire inactive sessions, optionally allow to stay signed in' (#82) from feature/8-session_timeouts into master
continuous-integration/drone/push Build is passing
Reviewed-on: #82
Reviewed-by: galfert <garret.alfert@gmail.com>
2023-03-31 07:58:24 +00:00