From 719b1be24518bad2ee9f354818b54953f7b98162 Mon Sep 17 00:00:00 2001 From: lukinovec Date: Wed, 1 Mar 2023 10:40:56 +0100 Subject: [PATCH 1/4] Fix URL root override example (#1079) --- assets/TenancyServiceProvider.stub.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/assets/TenancyServiceProvider.stub.php b/assets/TenancyServiceProvider.stub.php index a2679061..6c916d71 100644 --- a/assets/TenancyServiceProvider.stub.php +++ b/assets/TenancyServiceProvider.stub.php @@ -124,12 +124,12 @@ class TenancyServiceProvider extends ServiceProvider * Example of CLI tenant URL root override: * * UrlTenancyBootstrapper::$rootUrlOverride = function (Tenant $tenant) { - * $baseUrl = url('/'); - * $scheme = str($baseUrl)->before('://'); - * $hostname = str($baseUrl)->after($scheme . '://'); + * $baseUrl = env('APP_URL'); + * $scheme = str($baseUrl)->before('://'); + * $hostname = str($baseUrl)->after($scheme . '://'); * - * return $scheme . '://' . $tenant->getTenantKey() . '.' . $hostname; - *}; + * return $scheme . '://' . $tenant->getTenantKey() . '.' . $hostname; + * }; */ } From dfd39722a7e7db094999b19ba4007c88151be473 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20=C5=A0tancl?= Date: Thu, 16 Mar 2023 22:20:47 +0100 Subject: [PATCH 2/4] bump stancl/jobpipeline to v2.0.0-rc1 --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index b5734c1b..52882905 100644 --- a/composer.json +++ b/composer.json @@ -21,7 +21,7 @@ "facade/ignition-contracts": "^1.0.2", "spatie/ignition": "^1.4", "ramsey/uuid": "^4.7.3", - "stancl/jobpipeline": "^1.6.2", + "stancl/jobpipeline": "2.0.0-rc1", "stancl/virtualcolumn": "^1.3.1", "spatie/invade": "^1.1" }, From 228c2676f33d72e37a9587bd0d42c7420d262bd3 Mon Sep 17 00:00:00 2001 From: lukinovec Date: Thu, 13 Apr 2023 02:05:26 +0200 Subject: [PATCH 3/4] Add remember column to to the impersonation token (#1101) --- ..._000010_create_tenant_user_impersonation_tokens_table.php | 1 + src/Database/Models/ImpersonationToken.php | 1 + src/Features/UserImpersonation.php | 5 +++-- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/assets/impersonation-migrations/2020_05_15_000010_create_tenant_user_impersonation_tokens_table.php b/assets/impersonation-migrations/2020_05_15_000010_create_tenant_user_impersonation_tokens_table.php index c720160a..88c8fedb 100644 --- a/assets/impersonation-migrations/2020_05_15_000010_create_tenant_user_impersonation_tokens_table.php +++ b/assets/impersonation-migrations/2020_05_15_000010_create_tenant_user_impersonation_tokens_table.php @@ -20,6 +20,7 @@ return new class extends Migration $table->string('token', 128)->primary(); $table->string(Tenancy::tenantKeyColumn()); $table->string('user_id'); + $table->boolean('remember'); $table->string('auth_guard'); $table->string('redirect_url'); $table->timestamp('created_at'); diff --git a/src/Database/Models/ImpersonationToken.php b/src/Database/Models/ImpersonationToken.php index 3d7b595b..6dabbd03 100644 --- a/src/Database/Models/ImpersonationToken.php +++ b/src/Database/Models/ImpersonationToken.php @@ -18,6 +18,7 @@ use Stancl\Tenancy\Exceptions\StatefulGuardRequiredException; * @property string $user_id * @property string $auth_guard * @property string $redirect_url + * @property bool $remember * @property Carbon $created_at */ class ImpersonationToken extends Model diff --git a/src/Features/UserImpersonation.php b/src/Features/UserImpersonation.php index 608bed07..5921e656 100644 --- a/src/Features/UserImpersonation.php +++ b/src/Features/UserImpersonation.php @@ -18,12 +18,13 @@ class UserImpersonation implements Feature public function bootstrap(Tenancy $tenancy): void { - $tenancy->macro('impersonate', function (Tenant $tenant, string $userId, string $redirectUrl, string $authGuard = null): ImpersonationToken { + $tenancy->macro('impersonate', function (Tenant $tenant, string $userId, string $redirectUrl, string|null $authGuard = null, bool $remember = false): ImpersonationToken { return ImpersonationToken::create([ Tenancy::tenantKeyColumn() => $tenant->getTenantKey(), 'user_id' => $userId, 'redirect_url' => $redirectUrl, 'auth_guard' => $authGuard, + 'remember' => $remember, ]); }); } @@ -44,7 +45,7 @@ class UserImpersonation implements Feature abort_unless($tokenTenantId === $currentTenantId, 403); - Auth::guard($token->auth_guard)->loginUsingId($token->user_id); + Auth::guard($token->auth_guard)->loginUsingId($token->user_id, $token->remember); $token->delete(); From 1f4dae70128521037015e85e44cd62bd66fefee3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20=C5=A0tancl?= Date: Fri, 14 Apr 2023 17:06:15 +0200 Subject: [PATCH 4/4] exception message --- src/Exceptions/ModelNotSyncMasterException.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Exceptions/ModelNotSyncMasterException.php b/src/Exceptions/ModelNotSyncMasterException.php index ee5feb9a..5ae35a68 100644 --- a/src/Exceptions/ModelNotSyncMasterException.php +++ b/src/Exceptions/ModelNotSyncMasterException.php @@ -6,10 +6,12 @@ namespace Stancl\Tenancy\Exceptions; use Exception; +// todo@v4 improve all exception messages + class ModelNotSyncMasterException extends Exception { public function __construct(string $class) { - parent::__construct("Model of $class class is not an SyncMaster model. Make sure you're using the central model to make changes to synced resources when you're in the central context"); + parent::__construct("Model of $class class is not a SyncMaster model. Make sure you're using the central model to make changes to synced resources when you're in the central context"); } }