Commit Graph

775 Commits

Author SHA1 Message Date
Jorge Manrubia ebe1617f42 Format 2025-11-03 09:29:43 +01:00
David Heinemeier Hansson 9caf39ad2c Use modern strong params syntax 2025-11-02 20:26:12 +01:00
David Heinemeier Hansson 39dc2b6ab9 Prefer explicit turbo stream templates 2025-11-02 20:22:15 +01:00
David Heinemeier Hansson cf503bfba3 Prefer templates for turbo streams in all but the very simplest cases
(And probably even then)
2025-11-02 20:20:01 +01:00
David Heinemeier Hansson 3ccc93294f Style 2025-11-02 18:13:23 +01:00
David Heinemeier Hansson 3ff7a88294 Style 2025-11-02 18:11:00 +01:00
David Heinemeier Hansson fd61b4426c Conventional to do includes first 2025-11-02 18:09:30 +01:00
David Heinemeier Hansson 828ac5d2c1 Conventional order of actions 2025-11-02 18:08:49 +01:00
David Heinemeier Hansson 43069b1ea4 Extract Users::JoinsController from overloaded UsersController
Good code smell is when the before_action callbacks stack up but can't
be shared across actions
2025-11-02 17:49:25 +01:00
David Heinemeier Hansson bced7405df Extract events loading from overloaded UsersController 2025-11-02 17:31:28 +01:00
David Heinemeier Hansson 6a62df470c No longer used 2025-11-02 16:34:29 +01:00
David Heinemeier Hansson 877e62dec5 No CR when there are only two statements 2025-11-02 16:30:49 +01:00
David Heinemeier Hansson 02bd57089d Use before_action to pull up account assignment 2025-11-02 16:04:44 +01:00
David Heinemeier Hansson c834cce504 Simplify join code creation and validation and test controller
cc @monorkin
2025-11-02 15:58:33 +01:00
David Heinemeier Hansson 2c9845eb62 No need to hide that the top-level entropy is tied to the Account 2025-11-02 15:24:55 +01:00
David Heinemeier Hansson 0af74bfa11 Style 2025-11-02 14:17:46 +01:00
David Heinemeier Hansson 7052d6ecec Fix style 2025-11-02 13:54:46 +01:00
David Heinemeier Hansson b3474ec97d Rename Entropy::Configuration to just Entropy 2025-11-02 13:11:41 +01:00
David Heinemeier Hansson d29e4dcdcf No CR when there are only two statements in total 2025-11-02 12:49:54 +01:00
David Heinemeier Hansson e6459cede3 Use existing authorization method 2025-11-02 08:34:06 +01:00
Stanko K.R. 49d865ffd1 Delete scoped session tokens when encountered 2025-10-31 19:00:37 +01:00
Stanko K.R. 085c7fee2e Fix Rubocop offenses 2025-10-31 16:35:44 +01:00
Stanko K.R. ece9008459 Remove dead code 2025-10-31 16:28:08 +01:00
Stanko K.R. dd583206ee Allow changes to the Account name 2025-10-31 16:26:08 +01:00
Stanko K.R. 452c6a8373 Rework the email change flow to tie to memberships 2025-10-31 16:26:08 +01:00
Stanko Krtalić 98755844a1 Remove the internal API
* Bind sessions to identities
* Remove references to the identity token
* Move email changes to identity
* Move account menu into a turbo-frame
* Create tenants from a tenanted route
2025-10-31 16:26:08 +01:00
Jason Zimdars 5652e5699f Update design, logo, and copy 2025-10-31 16:26:08 +01:00
Stanko K.R. 201c3e27d3 Update tests for the Internal API 2025-10-31 16:26:08 +01:00
Stanko K.R. 79b012f319 Add Join Codes 2025-10-31 16:24:30 +01:00
Stanko K.R. c8843360fe Clean up and simplify magic links 2025-10-31 16:23:38 +01:00
Stanko K.R. 5cef4ffeb0 Add sign in flow using magic links 2025-10-31 16:22:12 +01:00
Mike Dalessio 1277cc065b Introduce untenanted Identity and Membership models
The new integration test shows the desired user-facing behavior, which
is to make it easy to login without a tenanted URL and to jump between
tenants.

Note that we track two things in the identity_token cookie: a signed
id, and the updated_at for the underlying Identity object. This allows
us to effectively cache on the Identity without having to hit the
database, by using an Identity::Mock object that is compatible with
etag and cache methods.
2025-10-31 16:22:12 +01:00
Jorge Manrubia 1a78de6f71 Fixes for refresh stream subscriptions
This will make the system listen for changes via the filtered
collections, when any, or via all the collections otherwise.
2025-10-31 12:25:05 +01:00
Jorge Manrubia 958deab2c7 Fix: problem with notifications not dismissing due to HTTP caching
The problem was related to tying the invalidation to the association of unread notifications. Its
cache key can remain constant as you read old notifications.

https://app.box-car.com/5986089/cards/2620/edit
2025-10-31 11:34:42 +01:00
Jorge Manrubia 12d461f8d1 Use last_active_at column for sorting since we are now touching updated_at for invalidating 2025-10-31 10:41:20 +01:00
Jorge Manrubia 3a9af623ef Leave etag as it was 2025-10-31 10:40:45 +01:00
Jorge Manrubia 6cfc0978a4 Columns touch the cards when the name/color changes 2025-10-31 10:40:45 +01:00
Jorge Manrubia ae4a07f843 Collections touch the cards when the name changes 2025-10-31 10:40:45 +01:00
Jorge Manrubia d0c33b8550 Add http caching for the new columns/edit card resource 2025-10-31 10:40:45 +01:00
Jorge Manrubia be6708065e No need to invalidate cache on columns since we load those with turbo frame now 2025-10-31 10:40:44 +01:00
Jorge Manrubia f0c5285fb0 Move column editing to stream so that we can remove the invalidation concern 2025-10-31 10:40:28 +01:00
Jorge Manrubia 1d12ecc65b Scope collections to column 2025-10-31 10:40:28 +01:00
Jorge Manrubia b0e5a5ccb5 Some fixes for HTTP caching not being invalidated properly 2025-10-31 10:40:26 +01:00
Jorge Manrubia 2a79cb413e Remove cacheable concern, inline cache helper 2025-10-31 10:38:52 +01:00
Jorge Manrubia c1936abed9 Reuse concern 2025-10-31 10:37:36 +01:00
Jorge Manrubia bcac3fad10 Move perma collection picker to turbo frame 2025-10-31 10:37:36 +01:00
David Heinemeier Hansson 5b70320a6b We don't need to be fancy here
Redirect should be fine
2025-10-30 14:42:48 +01:00
David Heinemeier Hansson 217b860bb8 Style 2025-10-30 14:41:07 +01:00
David Heinemeier Hansson 8b508fadea Do a proper redirect to dismiss the lightbox on deletion 2025-10-30 14:36:38 +01:00
Jorge Manrubia 9d548e77ef Merge pull request #1418 from basecamp/sort-columns
Sort columns
2025-10-30 08:39:53 +01:00