Fix misssed items in Migrations and Response filters

This commit is contained in:
Bradley Schofield 2024-02-25 17:30:26 +00:00
parent 5bc6018c7c
commit 7ad4af8d91
2 changed files with 45 additions and 1 deletions

View file

@ -252,6 +252,14 @@ class V20 extends Migration
Console::warning("'totpBackup' from {$id}: {$th->getMessage()}");
}
// Create challenges attribute
try {
$this->createAttributeFromCollection($this->projectDB, $id, 'challenges');
$this->projectDB->purgeCachedCollection($id);
} catch (Throwable $th) {
Console::warning("'challenges' from {$id}: {$th->getMessage()}");
}
break;
case 'projects':
// Rename providers authProviders to oAuthProviders
@ -543,8 +551,11 @@ class V20 extends Migration
$document->setAttribute('expire', $expire);
$factors = match ($document->getAttribute('provider')) {
Auth::SESSION_PROVIDER_ANONYMOUS => ['anonymous'],
Auth::SESSION_PROVIDER_MAGIC_URL,
Auth::SESSION_PROVIDER_OAUTH2 => ['email'],
Auth::SESSION_PROVIDER_PHONE => ['phone'],
Auth::SESSION_PROVIDER_ANONYMOUS => ['anonymous'],
Auth::SESSION_PROVIDER_TOKEN => ['token'],
default => ['password'],
};

View file

@ -22,6 +22,16 @@ class V17 extends Filter
case Response::MODEL_TOKEN:
$parsedResponse = $this->parseToken($parsedResponse);
break;
case Response::MODEL_MEMBERSHIP:
$parsedResponse = $this->parseMembership($parsedResponse);
break;
case Response::MODEL_SESSION:
$parsedResponse = $this->parseSession($parsedResponse);
break;
case Response::MODEL_WEBHOOK:
$parsedResponse = $this->parseWebhook($parsedResponse);
break;
}
return $parsedResponse;
@ -30,6 +40,8 @@ class V17 extends Filter
protected function parseUser(array $content)
{
unset($content['targets']);
unset($content['mfa']);
unset($content['totp']);
return $content;
}
@ -45,4 +57,25 @@ class V17 extends Filter
unset($content['phrase']);
return $content;
}
protected function parseMembership(array $content)
{
unset($content['mfa']);
return $content;
}
protected function parseSession(array $content)
{
unset($content['factors']);
unset($content['secret']);
return $content;
}
protected function parseWebhook(array $content)
{
unset($content['enabled']);
unset($content['logs']);
unset($content['attempts']);
return $content;
}
}