From a25569d6f23cc0256ac5e3f4180ff1866d3babc9 Mon Sep 17 00:00:00 2001 From: Sebastian Krupinski Date: Mon, 27 Jul 2026 00:50:43 -0400 Subject: [PATCH] refactor: migrate to scoped execution contexts Signed-off-by: Sebastian Krupinski --- lib/Controllers/EnrollmentController.php | 12 ++++++------ lib/Services/EnrollmentService.php | 16 ++++++++-------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/lib/Controllers/EnrollmentController.php b/lib/Controllers/EnrollmentController.php index 42b02fc..a103db0 100644 --- a/lib/Controllers/EnrollmentController.php +++ b/lib/Controllers/EnrollmentController.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace KTXM\AuthenticationProviderTotp\Controllers; use KTXC\Http\Response\JsonResponse; -use KTXC\SessionIdentity; +use KTXC\Context\IdentityContextInterface; use KTXF\Controller\ControllerAbstract; use KTXF\Routing\Attributes\AuthenticatedRoute; use KTXM\AuthenticationProviderTotp\Services\EnrollmentService; @@ -23,7 +23,7 @@ use KTXM\AuthenticationProviderTotp\Services\EnrollmentService; class EnrollmentController extends ControllerAbstract { public function __construct( - private readonly SessionIdentity $userIdentity, + private readonly IdentityContextInterface $identityContext, private readonly EnrollmentService $enrollmentService, ) {} @@ -33,7 +33,7 @@ class EnrollmentController extends ControllerAbstract #[AuthenticatedRoute('/totp/status', name: 'totp.status', methods: ['GET'])] public function status(): JsonResponse { - $userId = $this->userIdentity->identifier(); + $userId = $this->identityContext->identifier(); if (!$userId) { return new JsonResponse( ['error' => 'User not authenticated', 'error_code' => 'unauthorized'], @@ -56,7 +56,7 @@ class EnrollmentController extends ControllerAbstract #[AuthenticatedRoute('/totp/enroll', name: 'totp.enroll.begin', methods: ['POST'])] public function beginEnrollment(string $accountName = ''): JsonResponse { - $userId = $this->userIdentity->identifier(); + $userId = $this->identityContext->identifier(); if (!$userId) { return new JsonResponse( ['error' => 'User not authenticated', 'error_code' => 'unauthorized'], @@ -95,7 +95,7 @@ class EnrollmentController extends ControllerAbstract #[AuthenticatedRoute('/totp/enroll/verify', name: 'totp.enroll.verify', methods: ['POST'])] public function completeEnrollment(string $code): JsonResponse { - $userId = $this->userIdentity->identifier(); + $userId = $this->identityContext->identifier(); if (!$userId) { return new JsonResponse( ['error' => 'User not authenticated', 'error_code' => 'unauthorized'], @@ -131,7 +131,7 @@ class EnrollmentController extends ControllerAbstract #[AuthenticatedRoute('/totp/enroll/remove', name: 'totp.enroll.remove', methods: ['POST'])] public function removeEnrollment(string $code): JsonResponse { - $userId = $this->userIdentity->identifier(); + $userId = $this->identityContext->identifier(); if (!$userId) { return new JsonResponse( ['error' => 'User not authenticated', 'error_code' => 'unauthorized'], diff --git a/lib/Services/EnrollmentService.php b/lib/Services/EnrollmentService.php index 1601b11..a9a6440 100644 --- a/lib/Services/EnrollmentService.php +++ b/lib/Services/EnrollmentService.php @@ -4,7 +4,7 @@ declare(strict_types=1); namespace KTXM\AuthenticationProviderTotp\Services; -use KTXC\SessionTenant; +use KTXC\Context\TenantContextInterface; use KTXM\AuthenticationProviderTotp\Stores\EnrollmentStore; /** @@ -26,7 +26,7 @@ class EnrollmentService private const SECRET_LENGTH = 20; // 160 bits as recommended by RFC 4226 public function __construct( - private readonly SessionTenant $tenant, + private readonly TenantContextInterface $tenantContext, private readonly EnrollmentStore $enrollmentStore, ) {} @@ -35,7 +35,7 @@ class EnrollmentService */ public function isEnrolled(string $userId): bool { - $tenantId = $this->tenant->identifier(); + $tenantId = $this->tenantContext->identifier(); if (!$tenantId) { return false; } @@ -53,7 +53,7 @@ class EnrollmentService */ public function beginEnrollment(string $userId, array $config = []): array { - $tenantId = $this->tenant->identifier(); + $tenantId = $this->tenantContext->identifier(); if (!$tenantId) { return [ 'success' => false, @@ -108,7 +108,7 @@ class EnrollmentService */ public function completeEnrollment(string $userId, string $code): array { - $tenantId = $this->tenant->identifier(); + $tenantId = $this->tenantContext->identifier(); if (!$tenantId) { return [ 'success' => false, @@ -150,7 +150,7 @@ class EnrollmentService */ public function removeEnrollment(string $userId): array { - $tenantId = $this->tenant->identifier(); + $tenantId = $this->tenantContext->identifier(); if (!$tenantId) { return [ 'success' => false, @@ -181,7 +181,7 @@ class EnrollmentService */ public function verifyCode(string $userId, string $code): array { - $tenantId = $this->tenant->identifier(); + $tenantId = $this->tenantContext->identifier(); if (!$tenantId) { return [ 'success' => false, @@ -225,7 +225,7 @@ class EnrollmentService */ public function getEnrollmentSecret(string $userId): ?string { - $tenantId = $this->tenant->identifier(); + $tenantId = $this->tenantContext->identifier(); if (!$tenantId) { return null; }