1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2026-02-05 04:34:03 +00:00
Commit graph

1339 commits

Author SHA1 Message Date
3799f08c7c Merge branch 'may25' into cloning-refactor 2025-06-23 11:39:42 +02:00
7481229063 revert regression in last commit, opt for a phpstan ignore instead 2025-06-19 00:12:38 +02:00
12fcbabd76 phpstan fix 2025-06-18 23:52:35 +02:00
551895d582 Merge branch 'master' into may25 2025-06-18 23:38:21 +02:00
e1fc0e107d remove ignition dependencies 2025-06-18 23:29:24 +02:00
lukinovec
bdbfc2899c Test that the clone action can be used fluently without issues now (could serve as a regression test for the routesToClone change in previous commit) 2025-06-12 09:09:19 +02:00
lukinovec
a196b72ac7 Improve tests (comments, use $tenant->id instead of $tenant->getTenantKey()) 2025-06-12 08:47:32 +02:00
lukinovec
413247752d Rewrite clone action annotation, fix fluent usage bug 2025-06-12 08:32:41 +02:00
74e702105a CloneRoutesAsTenant cleanup 2025-06-05 05:35:03 +02:00
lukinovec
2057e1e5ae
[4.x] Make forcing RLS configurable (#1293)
* Add `$forceRls` static property to tenants:rls

* Set `$forceRls` in tests where scoping is tested, add non-superuser, non-bypassrls table owner test

* Move DROP TABLE statement

* Remove try/catch

* Put DROP OWNED BY into try/catch

* Static property cleanup in afterEach

* Make with() matrix syntax more clear by using with() multiple times

* Fix typo, improve comment

* Move and update force RLS comment

* Add test for `$forceRls = false`, refactor BYPASSRLS test

* Update link in test comment

* Add a dataset for `$forceRls` in the table owner test, fix BYPASSRLS test

* Correct PR link comment

* minor fixes

* Add test that makes the bypassrls/forceRls behavior clear

* Delete redundant test

* cleanup

* Update tests/RLS/TableManagerTest.php

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Samuel Štancl <samuel@archte.ch>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-05 05:06:05 +02:00
lukinovec
1bade8eee7 Clarify cloning logic 2025-06-04 12:03:55 +02:00
lukinovec
efc0e11e73 Ignore routes that are already considered tenant routes from cloning, update test accordingly 2025-06-04 11:39:33 +02:00
lukinovec
410165e7ba Handle nested cloning flags in CloneRoutesAsTenant 2025-06-03 12:09:26 +02:00
lukinovec
a924b12da5 Improve regression test 2025-06-03 12:08:28 +02:00
lukinovec
1748767b10 Improve regression test 2025-06-03 11:52:02 +02:00
lukinovec
4c32599c57 Add test for handling 'clone' in MW groups 2025-06-03 11:37:55 +02:00
875d6409cb phpstan 2025-06-03 01:55:26 +02:00
ca3dfe3ef9 clean up CloneRoutesAsTenant, add a todo 2025-06-03 01:43:43 +02:00
90cf56955d Merge branch 'may25' into cloning-refactor 2025-06-02 23:21:15 +02:00
e74e1f92e1
Make RouteMode enum backed (#1362) 2025-06-02 20:34:49 +02:00
lukinovec
f771aa8645
[4.x] Test that route model binding works correctly with path identification (#1360)
* Test that route model binding works with path identification (closure-based routes)

* Correct test name

* Update tests/PathIdentificationTest.php

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* make assertions more clear

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Samuel Štancl <samuel@archte.ch>
2025-06-02 19:05:17 +02:00
5f7fd38e5a
[4.x] URL generation, request data identification improvements (#1357)
* UrlGenerator: set defaults based on config; request data: move config to config file+resolver

* Claude code adjustments

* improve request data tests, simplify complex test in UrlGeneratorBootstrapperTest

* url generator test: test changing tenant parameter name

* request data identification: add tenant_model_column configuration

* defaultParameterNames -> passQueryParameter

* move comment

* minor refactor in PathIdentificationTest, expand CLAUDE.md to include early identification section

* Fix COLOR_FLAG

* improve test name

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* TenancyUrlGenerator: add a check for queryParameterName being null

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix code style (php-cs-fixer)

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-02 03:43:47 +02:00
lukinovec
ba574d216c
Fix typo in CloneActionTest
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-01 17:10:00 +02:00
f4cc99b317 fix phpstan 2025-05-29 18:39:05 +02:00
37f6260812 Add CLAUDE.md 2025-05-29 18:36:09 +02:00
lukinovec
645232e53c Allow cloning specific routes by name 2025-05-19 08:39:09 +02:00
lukinovec
3b90c91763 Add test for cloneRoutesWithMiddleware(), correct existing tests 2025-05-19 07:58:58 +02:00
lukinovec
3877e7728d Improve comment 2025-05-19 07:52:10 +02:00
lukinovec
37306e73d3 Use 'clone' instead of a universal route in tenant parameter removal test 2025-05-16 17:29:46 +02:00
lukinovec
228d6ca788 Delete redundant "should not be cloned" part from shouldBeCloned() 2025-05-16 16:58:27 +02:00
lukinovec
e8eb38748f Refactor cloning action, update tests 2025-05-16 16:52:13 +02:00
lukinovec
588d1fcc0d
[4.x] Make TableRLSManager skip foreign keys with 'no-rls' comment right away (#1352)
* When a foreign key has no-rls comment (or no comment when scopeByDefault is false), skip path generation earlier

* Fix column definitions
2025-05-15 14:54:04 +02:00
27685ffe5a improve sample RootUrlBootstrapper config 2025-05-09 15:15:22 +02:00
lukinovec
dc90e60a2f
[4.x] Make ScopeSessions usable on universal routes (#1342)
* Skip ScopeSessions MW if the current context is central and the route is universal

* Add regressiont test

* Simplify code

---------

Co-authored-by: Samuel Štancl <samuel@archte.ch>
2025-04-04 03:15:37 +02:00
lukinovec
8cd15db1fc
[4.x] Make RemoveStorageSymlinksAction able to delete broken symlinks (#1323)
* Add regression test for removing invalid symlinks

* Move commented RemoveStorageSymlinks job to the DeletingTenant pipeline (better default - the symlinks will be removed *before* deleting tenant storage)

* Remove symlink validity check from symlinkExists() (only check for the symlink's existence)

* Delete complete todo0

* Make the symlink assertions more explicit

* update test name

---------

Co-authored-by: Samuel Štancl <samuel@archte.ch>
2025-03-18 21:27:27 +01:00
Alexandru Bucur
8d87ee9dfc
[4.x] Add ULIDGenerator (#1332)
* feat: introduce a simple ULID generator

* add test

---------

Co-authored-by: Samuel Štancl <samuel@archte.ch>
2025-03-18 19:00:35 +01:00
Sergio Peris
84a2863d2d
[4.x] Fix fully qualified name at TenancyServiceProvider.stub.php (#1334) 2025-03-18 18:56:29 +01:00
95dd906de2
[4.x] Make the ImpersonationToken model configurable (#1335)
* Make the ImpersonationToken model configurable, resolve #1315

* Add type definition

* Make phpstan happy
2025-03-18 18:42:08 +01:00
37a0f1a713
[4.x] Invalidate resolver cache on delete (#1329)
* Invalidate resolver cache on delete

* Fix code style (php-cs-fixer)

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-13 17:03:49 +01:00
8960a83047
[4.x] Laravel 12 support (#1321)
* Add Laravel 12 support, drop Laravel 11 support

* Fix RLS tree generation (specify schema name in generateTrees())

* ci fixes, use stable virtualcolumn version

---------

Co-authored-by: lukinovec <lukinovec@gmail.com>
2025-02-25 16:26:18 +01:00
657e165cc8
[4.x] Cleanup (#1317)
* cleanup, resolve todos, add immediate todos

* Improve path_identification_middleware docblock

* rename leave() method in tests

* wip fix hardcoded values making assumptions about the parameters used in routing

* defaultParameterNames

* fix CreatesDatabaseUsers return values

* $tenant -> tenant()

* resolve more todos

* make comment block a complete block

* Correct useTenantRoutesInFortify(), delete unused import

* test fixes

* remove todos

* remove JobPipeline todo

* simplify comment example

* remove todo

* fix VERSION_PREFIX in queue.yml

---------

Co-authored-by: lukinovec <lukinovec@gmail.com>
2025-02-20 20:49:09 +01:00
eac88dcc2a contributing note about mssql on Apple Silicon 2025-02-19 12:38:35 +01:00
ffad2db103 fix regression in previous commit: consume PendingDispatch *before* reverting context 2025-02-19 12:28:38 +01:00
b9cc63feed handle exceptions in Tenancy:run() 2025-02-19 12:02:58 +01:00
7bc2bb6f6a Revert "Add laravel/framework:dev-master to CI matrix"
This reverts commit 29bfe532fa.
2025-02-14 14:35:34 +01:00
29bfe532fa
Add laravel/framework:dev-master to CI matrix 2025-02-14 14:20:41 +01:00
lukinovec
cecf07a8c9
[4.x] Add tenant parameter to defaults() in UrlGeneratorBootstrapper (#1311)
* Pass tenant parameter using defaults in UrlGeneratorBootstrapper, update tests accordingly (wip)

* Fix code style (php-cs-fixer)

* Update bootstrapper

* Improve TenancyUrlGenerator docblocks

* Improve bootstrapper/TenancyUrlGenerator tests (WIP)

* Improve route() name prefixing test

* Keep  `UrlGeneratorBootstrapper::$addTenantParameterToDefaults` disabled by default

* Add `$override` functionality  to TenancyUrlGenerator

* Test $override functionality, update new defaults in the bootstrapper tests

* Fix code style (php-cs-fixer)

* Update comments

* Update routeNameOverride()

* cleanup

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Samuel Štancl <samuel@archte.ch>
2025-02-14 13:57:29 +01:00
lukinovec
fffaf7c58c
Test ecnrypted casts (#1284) 2025-02-14 08:48:16 +01:00
30ee4e9529
[4.x] Fix 1267: early return in runForMultiple if an empty array is passed (#1286)
* fix 1267: early return in runForMultiple if an empty array is passed

* Test that runForMulltiple runs the passed closure for the right tenants

* Correct comment

---------

Co-authored-by: lukinovec <lukinovec@gmail.com>
2025-02-14 08:19:02 +01:00
25360f6b6a
[4.x] Improve id generators (#1300)
* add RandomIntGenerator

* remove string assertions

* make int ranges configurable

* update test to use min & max
2025-01-21 17:06:15 +01:00