mirror of
https://github.com/archtechx/tenancy.git
synced 2026-02-04 13:34:03 +00:00
Delete the ttl option from clear expired impersonation tokens command (only clears expired tokens now)
This commit is contained in:
parent
69a1326029
commit
c3c5955c84
2 changed files with 8 additions and 24 deletions
|
|
@ -8,20 +8,15 @@ use Illuminate\Console\Command;
|
||||||
use Stancl\Tenancy\Features\UserImpersonation;
|
use Stancl\Tenancy\Features\UserImpersonation;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This command clears impersonation tokens.
|
* Clears expired impersonation tokens.
|
||||||
* By default, only expired tokens (= tokens older than 60s, which is the UserImpersonation::$ttl default) are deleted.
|
|
||||||
*
|
*
|
||||||
* To override the default behavior, e.g. to clear all tokens newer than 60s,
|
* Tokens older than UserImpersonation::$ttl (60 seconds by default) are considered expired.
|
||||||
* you can pass the seconds in the --ttl option.
|
|
||||||
*
|
|
||||||
* For example, `tenants:clear-expired-impersonation-tokens --ttl=30` will clear all tokens older than 30 seconds, ignoring the default.
|
|
||||||
*
|
*
|
||||||
* @see Stancl\Tenancy\Features\UserImpersonation
|
* @see Stancl\Tenancy\Features\UserImpersonation
|
||||||
*/
|
*/
|
||||||
class ClearExpiredImpersonationTokens extends Command
|
class ClearExpiredImpersonationTokens extends Command
|
||||||
{
|
{
|
||||||
protected $signature = 'tenants:clear-expired-impersonation-tokens
|
protected $signature = 'tenants:clear-expired-impersonation-tokens';
|
||||||
{--ttl= : TTL in seconds for impersonation tokens (default is UserImpersonation::$ttl)}';
|
|
||||||
|
|
||||||
protected $description = 'Clear expired impersonation tokens.';
|
protected $description = 'Clear expired impersonation tokens.';
|
||||||
|
|
||||||
|
|
@ -29,8 +24,7 @@ class ClearExpiredImpersonationTokens extends Command
|
||||||
{
|
{
|
||||||
$this->components->info('Deleting expired impersonation tokens.');
|
$this->components->info('Deleting expired impersonation tokens.');
|
||||||
|
|
||||||
$ttl = (int) $this->option('ttl') ?: UserImpersonation::$ttl;
|
$expirationDate = now()->subSeconds(UserImpersonation::$ttl);
|
||||||
$expirationDate = now()->subSeconds($ttl);
|
|
||||||
|
|
||||||
$impersonationTokenModel = UserImpersonation::modelClass();
|
$impersonationTokenModel = UserImpersonation::modelClass();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -397,23 +397,13 @@ test('expired impersonation tokens can be cleaned up using a command', function
|
||||||
'created_at' => Carbon::now()->subSeconds(70),
|
'created_at' => Carbon::now()->subSeconds(70),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// The --ttl option can be used to specify a custom TTL instead of updating UserImpersonation::$ttl.
|
// With ttl set to 80s, the active token should not be deleted (token is only considered expired if older than 80s)
|
||||||
// The passed ttl will be used in place of the default ttl,
|
UserImpersonation::$ttl = 80;
|
||||||
// and with ttl set to 80s, the active token should not be deleted
|
pest()->artisan('tenants:clear-expired-impersonation-tokens')
|
||||||
pest()->artisan('tenants:clear-expired-impersonation-tokens', [
|
->assertExitCode(0)
|
||||||
'--ttl' => 80,
|
|
||||||
])->assertExitCode(0)
|
|
||||||
->expectsOutputToContain('0 expired impersonation tokens deleted');
|
->expectsOutputToContain('0 expired impersonation tokens deleted');
|
||||||
|
|
||||||
expect(ImpersonationToken::find($activeToken->token))->not()->toBeNull();
|
expect(ImpersonationToken::find($activeToken->token))->not()->toBeNull();
|
||||||
|
|
||||||
// With ttl set to 40s, the active token should be deleted
|
|
||||||
pest()->artisan('tenants:clear-expired-impersonation-tokens', [
|
|
||||||
'--ttl' => 40,
|
|
||||||
])->assertExitCode(0)
|
|
||||||
->expectsOutputToContain('1 expired impersonation token deleted');
|
|
||||||
|
|
||||||
expect(ImpersonationToken::find($activeToken->token))->toBeNull();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
function migrateTenants()
|
function migrateTenants()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue