Replace with helper
This commit is contained in:
		
							parent
							
								
									d9cfb62a12
								
							
						
					
					
						commit
						d58496a355
					
				| @ -3,7 +3,6 @@ | ||||
| namespace App\Extensions; | ||||
| 
 | ||||
| use App\Models\DatabaseHost; | ||||
| use Illuminate\Contracts\Encryption\Encrypter; | ||||
| 
 | ||||
| class DynamicDatabaseConnection | ||||
| { | ||||
| @ -11,14 +10,6 @@ class DynamicDatabaseConnection | ||||
|     public const DB_COLLATION = 'utf8_unicode_ci'; | ||||
|     public const DB_DRIVER = 'mysql'; | ||||
| 
 | ||||
|     /** | ||||
|      * DynamicDatabaseConnection constructor. | ||||
|      */ | ||||
|     public function __construct( | ||||
|         protected Encrypter $encrypter, | ||||
|     ) { | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Adds a dynamic database connection entry to the runtime config. | ||||
|      */ | ||||
| @ -34,7 +25,7 @@ class DynamicDatabaseConnection | ||||
|             'port' => $host->port, | ||||
|             'database' => $database, | ||||
|             'username' => $host->username, | ||||
|             'password' => $this->encrypter->decrypt($host->password), | ||||
|             'password' => decrypt($host->password), | ||||
|             'charset' => self::DB_CHARSET, | ||||
|             'collation' => self::DB_COLLATION, | ||||
|         ]); | ||||
|  | ||||
| @ -7,7 +7,6 @@ use App\Models\Node; | ||||
| use App\Models\ApiKey; | ||||
| use Illuminate\Http\JsonResponse; | ||||
| use App\Http\Controllers\Controller; | ||||
| use Illuminate\Contracts\Encryption\Encrypter; | ||||
| use App\Services\Api\KeyCreationService; | ||||
| 
 | ||||
| class NodeAutoDeployController extends Controller | ||||
| @ -16,7 +15,6 @@ class NodeAutoDeployController extends Controller | ||||
|      * NodeAutoDeployController constructor. | ||||
|      */ | ||||
|     public function __construct( | ||||
|         private Encrypter $encrypter, | ||||
|         private KeyCreationService $keyCreationService | ||||
|     ) { | ||||
|     } | ||||
| @ -58,7 +56,7 @@ class NodeAutoDeployController extends Controller | ||||
| 
 | ||||
|         return new JsonResponse([ | ||||
|             'node' => $node->id, | ||||
|             'token' => $key->identifier . $this->encrypter->decrypt($key->token), | ||||
|             'token' => $key->identifier . decrypt($key->token), | ||||
|         ]); | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -11,7 +11,6 @@ use App\Notifications\MailTested; | ||||
| use Illuminate\Support\Facades\Notification; | ||||
| use App\Exceptions\DisplayException; | ||||
| use App\Http\Controllers\Controller; | ||||
| use Illuminate\Contracts\Encryption\Encrypter; | ||||
| use App\Providers\SettingsServiceProvider; | ||||
| use App\Http\Requests\Admin\Settings\MailSettingsFormRequest; | ||||
| 
 | ||||
| @ -21,7 +20,6 @@ class MailController extends Controller | ||||
|      * MailController constructor. | ||||
|      */ | ||||
|     public function __construct( | ||||
|         private Encrypter $encrypter, | ||||
|         private Kernel $kernel, | ||||
|     ) { | ||||
|     } | ||||
| @ -56,7 +54,7 @@ class MailController extends Controller | ||||
| 
 | ||||
|         foreach ($values as $key => $value) { | ||||
|             if (in_array($key, SettingsServiceProvider::getEncryptedKeys()) && !empty($value)) { | ||||
|                 $value = $this->encrypter->encrypt($value); | ||||
|                 $value = encrypt($value); | ||||
|             } | ||||
| 
 | ||||
|             Setting::set('settings::' . $key, $value); | ||||
|  | ||||
| @ -8,7 +8,6 @@ use App\Models\User; | ||||
| use Illuminate\Http\JsonResponse; | ||||
| use PragmaRX\Google2FA\Google2FA; | ||||
| use Illuminate\Support\Facades\Event; | ||||
| use Illuminate\Contracts\Encryption\Encrypter; | ||||
| use App\Events\Auth\ProvidedAuthenticationToken; | ||||
| use App\Http\Requests\Auth\LoginCheckpointRequest; | ||||
| use Illuminate\Contracts\Validation\Factory as ValidationFactory; | ||||
| @ -21,7 +20,6 @@ class LoginCheckpointController extends AbstractLoginController | ||||
|      * LoginCheckpointController constructor. | ||||
|      */ | ||||
|     public function __construct( | ||||
|         private Encrypter $encrypter, | ||||
|         private Google2FA $google2FA, | ||||
|         private ValidationFactory $validation | ||||
|     ) { | ||||
| @ -67,7 +65,7 @@ class LoginCheckpointController extends AbstractLoginController | ||||
|                 return $this->sendLoginResponse($user, $request); | ||||
|             } | ||||
|         } else { | ||||
|             $decrypted = $this->encrypter->decrypt($user->totp_secret); | ||||
|             $decrypted = decrypt($user->totp_secret); | ||||
| 
 | ||||
|             if ($this->google2FA->verifyKey($decrypted, (string) $request->input('authentication_code'), config('panel.auth.2fa.window'))) { | ||||
|                 Event::dispatch(new ProvidedAuthenticationToken($user)); | ||||
|  | ||||
| @ -4,7 +4,6 @@ namespace App\Http\Middleware\Api\Daemon; | ||||
| 
 | ||||
| use App\Models\Node; | ||||
| use Illuminate\Http\Request; | ||||
| use Illuminate\Contracts\Encryption\Encrypter; | ||||
| use Symfony\Component\HttpKernel\Exception\HttpException; | ||||
| use Symfony\Component\HttpKernel\Exception\BadRequestHttpException; | ||||
| use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException; | ||||
| @ -18,13 +17,6 @@ class DaemonAuthenticate | ||||
|         'daemon.configuration', | ||||
|     ]; | ||||
| 
 | ||||
|     /** | ||||
|      * DaemonAuthenticate constructor. | ||||
|      */ | ||||
|     public function __construct(private Encrypter $encrypter) | ||||
|     { | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Check if a request from the daemon can be properly attributed back to a single node instance. | ||||
|      * | ||||
| @ -49,7 +41,7 @@ class DaemonAuthenticate | ||||
|         /** @var Node $node */ | ||||
|         $node = Node::query()->where('daemon_token_id', $parts[0])->firstOrFail(); | ||||
| 
 | ||||
|         if (hash_equals((string) $this->encrypter->decrypt($node->daemon_token), $parts[1])) { | ||||
|         if (hash_equals((string) decrypt($node->daemon_token), $parts[1])) { | ||||
|             $request->attributes->set('node', $node); | ||||
| 
 | ||||
|             return $next($request); | ||||
|  | ||||
| @ -4,9 +4,7 @@ namespace App\Models; | ||||
| 
 | ||||
| use Illuminate\Support\Str; | ||||
| use Symfony\Component\Yaml\Yaml; | ||||
| use Illuminate\Container\Container; | ||||
| use Illuminate\Notifications\Notifiable; | ||||
| use Illuminate\Contracts\Encryption\Encrypter; | ||||
| use Illuminate\Database\Eloquent\Relations\HasMany; | ||||
| use Illuminate\Database\Eloquent\Relations\HasManyThrough; | ||||
| 
 | ||||
| @ -136,7 +134,7 @@ class Node extends Model | ||||
|             'debug' => false, | ||||
|             'uuid' => $this->uuid, | ||||
|             'token_id' => $this->daemon_token_id, | ||||
|             'token' => Container::getInstance()->make(Encrypter::class)->decrypt($this->daemon_token), | ||||
|             'token' => decrypt($this->daemon_token), | ||||
|             'api' => [ | ||||
|                 'host' => '0.0.0.0', | ||||
|                 'port' => $this->daemonListen, | ||||
| @ -179,7 +177,7 @@ class Node extends Model | ||||
|      */ | ||||
|     public function getDecryptedKey(): string | ||||
|     { | ||||
|         return (string) Container::getInstance()->make(Encrypter::class)->decrypt( | ||||
|         return (string) decrypt( | ||||
|             $this->daemon_token | ||||
|         ); | ||||
|     } | ||||
|  | ||||
| @ -3,11 +3,10 @@ | ||||
| namespace App\Providers; | ||||
| 
 | ||||
| use App\Models\Setting; | ||||
| use Exception; | ||||
| use Psr\Log\LoggerInterface as Log; | ||||
| use Illuminate\Database\QueryException; | ||||
| use Illuminate\Support\ServiceProvider; | ||||
| use Illuminate\Contracts\Encryption\Encrypter; | ||||
| use Illuminate\Contracts\Encryption\DecryptException; | ||||
| 
 | ||||
| class SettingsServiceProvider extends ServiceProvider | ||||
| { | ||||
| @ -56,7 +55,7 @@ class SettingsServiceProvider extends ServiceProvider | ||||
|     /** | ||||
|      * Boot the service provider. | ||||
|      */ | ||||
|     public function boot(Encrypter $encrypter, Log $log): void | ||||
|     public function boot(Log $log): void | ||||
|     { | ||||
|         // Only set the email driver settings from the database if we
 | ||||
|         // are configured using SMTP as the driver.
 | ||||
| @ -78,8 +77,9 @@ class SettingsServiceProvider extends ServiceProvider | ||||
|             $value = array_get($values, 'settings::' . $key, config(str_replace(':', '.', $key))); | ||||
|             if (in_array($key, self::$encrypted)) { | ||||
|                 try { | ||||
|                     $value = $encrypter->decrypt($value); | ||||
|                 } catch (DecryptException $exception) { | ||||
|                     $value = decrypt($value); | ||||
|                 } catch (Exception) { | ||||
|                     // ignore
 | ||||
|                 } | ||||
|             } | ||||
| 
 | ||||
|  | ||||
| @ -3,19 +3,11 @@ | ||||
| namespace App\Services\Api; | ||||
| 
 | ||||
| use App\Models\ApiKey; | ||||
| use Illuminate\Contracts\Encryption\Encrypter; | ||||
| 
 | ||||
| class KeyCreationService | ||||
| { | ||||
|     private int $keyType = ApiKey::TYPE_NONE; | ||||
| 
 | ||||
|     /** | ||||
|      * ApiKeyService constructor. | ||||
|      */ | ||||
|     public function __construct(private Encrypter $encrypter) | ||||
|     { | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Set the type of key that should be created. By default, an orphaned key will be | ||||
|      * created. These keys cannot be used for anything, and will not render in the UI. | ||||
| @ -39,7 +31,7 @@ class KeyCreationService | ||||
|         $data = array_merge($data, [ | ||||
|             'key_type' => $this->keyType, | ||||
|             'identifier' => ApiKey::generateTokenIdentifier($this->keyType), | ||||
|             'token' => $this->encrypter->encrypt(str_random(ApiKey::KEY_LENGTH)), | ||||
|             'token' => encrypt(str_random(ApiKey::KEY_LENGTH)), | ||||
|         ]); | ||||
| 
 | ||||
|         if ($this->keyType === ApiKey::TYPE_APPLICATION) { | ||||
|  | ||||
| @ -2,12 +2,10 @@ | ||||
| 
 | ||||
| namespace App\Services\Databases; | ||||
| 
 | ||||
| use Exception; | ||||
| use App\Models\Server; | ||||
| use App\Models\Database; | ||||
| use App\Helpers\Utilities; | ||||
| use Illuminate\Database\ConnectionInterface; | ||||
| use Illuminate\Contracts\Encryption\Encrypter; | ||||
| use App\Extensions\DynamicDatabaseConnection; | ||||
| use App\Exceptions\Repository\DuplicateDatabaseNameException; | ||||
| use App\Exceptions\Service\Database\TooManyDatabasesException; | ||||
| @ -34,7 +32,6 @@ class DatabaseManagementService | ||||
|     public function __construct( | ||||
|         protected ConnectionInterface $connection, | ||||
|         protected DynamicDatabaseConnection $dynamic, | ||||
|         protected Encrypter $encrypter, | ||||
|     ) { | ||||
|     } | ||||
| 
 | ||||
| @ -89,7 +86,7 @@ class DatabaseManagementService | ||||
|         $data = array_merge($data, [ | ||||
|             'server_id' => $server->id, | ||||
|             'username' => sprintf('u%d_%s', $server->id, str_random(10)), | ||||
|             'password' => $this->encrypter->encrypt( | ||||
|             'password' => encrypt( | ||||
|                 Utilities::randomStringWithSpecialCharacters(24) | ||||
|             ), | ||||
|         ]); | ||||
| @ -103,7 +100,7 @@ class DatabaseManagementService | ||||
|             $database->createUser( | ||||
|                 $database->username, | ||||
|                 $database->remote, | ||||
|                 $this->encrypter->decrypt($database->password), | ||||
|                 decrypt($database->password), | ||||
|                 $database->max_connections | ||||
|             ); | ||||
|             $database->assignUserToDatabase($database->database, $database->username, $database->remote); | ||||
|  | ||||
| @ -5,7 +5,6 @@ namespace App\Services\Databases; | ||||
| use App\Models\Database; | ||||
| use App\Helpers\Utilities; | ||||
| use Illuminate\Database\ConnectionInterface; | ||||
| use Illuminate\Contracts\Encryption\Encrypter; | ||||
| use App\Extensions\DynamicDatabaseConnection; | ||||
| 
 | ||||
| class DatabasePasswordService | ||||
| @ -16,7 +15,6 @@ class DatabasePasswordService | ||||
|     public function __construct( | ||||
|         private ConnectionInterface $connection, | ||||
|         private DynamicDatabaseConnection $dynamic, | ||||
|         private Encrypter $encrypter, | ||||
|     ) { | ||||
|     } | ||||
| 
 | ||||
| @ -35,7 +33,7 @@ class DatabasePasswordService | ||||
|             $this->dynamic->set('dynamic', $database->database_host_id); | ||||
| 
 | ||||
|             $database->update([ | ||||
|                 'password' => $this->encrypter->encrypt($password), | ||||
|                 'password' => encrypt($password), | ||||
|             ]); | ||||
| 
 | ||||
|             $database->dropUser($database->username, $database->remote); | ||||
|  | ||||
| @ -5,7 +5,6 @@ namespace App\Services\Databases\Hosts; | ||||
| use App\Models\DatabaseHost; | ||||
| use Illuminate\Database\DatabaseManager; | ||||
| use Illuminate\Database\ConnectionInterface; | ||||
| use Illuminate\Contracts\Encryption\Encrypter; | ||||
| use App\Extensions\DynamicDatabaseConnection; | ||||
| 
 | ||||
| class HostCreationService | ||||
| @ -17,7 +16,6 @@ class HostCreationService | ||||
|         private ConnectionInterface $connection, | ||||
|         private DatabaseManager $databaseManager, | ||||
|         private DynamicDatabaseConnection $dynamic, | ||||
|         private Encrypter $encrypter, | ||||
|     ) { | ||||
|     } | ||||
| 
 | ||||
| @ -30,7 +28,7 @@ class HostCreationService | ||||
|     { | ||||
|         return $this->connection->transaction(function () use ($data) { | ||||
|             $host = DatabaseHost::query()->create([ | ||||
|                 'password' => $this->encrypter->encrypt(array_get($data, 'password')), | ||||
|                 'password' => encrypt(array_get($data, 'password')), | ||||
|                 'name' => array_get($data, 'name'), | ||||
|                 'host' => array_get($data, 'host'), | ||||
|                 'port' => array_get($data, 'port'), | ||||
|  | ||||
| @ -5,7 +5,6 @@ namespace App\Services\Databases\Hosts; | ||||
| use App\Models\DatabaseHost; | ||||
| use Illuminate\Database\DatabaseManager; | ||||
| use Illuminate\Database\ConnectionInterface; | ||||
| use Illuminate\Contracts\Encryption\Encrypter; | ||||
| use App\Extensions\DynamicDatabaseConnection; | ||||
| 
 | ||||
| class HostUpdateService | ||||
| @ -17,7 +16,6 @@ class HostUpdateService | ||||
|         private ConnectionInterface $connection, | ||||
|         private DatabaseManager $databaseManager, | ||||
|         private DynamicDatabaseConnection $dynamic, | ||||
|         private Encrypter $encrypter, | ||||
|     ) { | ||||
|     } | ||||
| 
 | ||||
| @ -29,7 +27,7 @@ class HostUpdateService | ||||
|     public function handle(int $hostId, array $data): DatabaseHost | ||||
|     { | ||||
|         if (!empty(array_get($data, 'password'))) { | ||||
|             $data['password'] = $this->encrypter->encrypt($data['password']); | ||||
|             $data['password'] = encrypt($data['password']); | ||||
|         } else { | ||||
|             unset($data['password']); | ||||
|         } | ||||
|  | ||||
| @ -5,7 +5,6 @@ namespace App\Services\Nodes; | ||||
| use Ramsey\Uuid\Uuid; | ||||
| use Illuminate\Support\Str; | ||||
| use App\Models\Node; | ||||
| use Illuminate\Contracts\Encryption\Encrypter; | ||||
| 
 | ||||
| class NodeCreationService | ||||
| { | ||||
| @ -17,7 +16,7 @@ class NodeCreationService | ||||
|     public function handle(array $data): Node | ||||
|     { | ||||
|         $data['uuid'] = Uuid::uuid4()->toString(); | ||||
|         $data['daemon_token'] = app(Encrypter::class)->encrypt(Str::random(Node::DAEMON_TOKEN_LENGTH)); | ||||
|         $data['daemon_token'] = encrypt(Str::random(Node::DAEMON_TOKEN_LENGTH)); | ||||
|         $data['daemon_token_id'] = Str::random(Node::DAEMON_TOKEN_ID_LENGTH); | ||||
| 
 | ||||
|         return Node::query()->create($data); | ||||
|  | ||||
| @ -5,7 +5,6 @@ namespace App\Services\Nodes; | ||||
| use Illuminate\Support\Str; | ||||
| use App\Models\Node; | ||||
| use Illuminate\Database\ConnectionInterface; | ||||
| use Illuminate\Contracts\Encryption\Encrypter; | ||||
| use App\Repositories\Daemon\DaemonConfigurationRepository; | ||||
| use App\Exceptions\Http\Connection\DaemonConnectionException; | ||||
| use App\Exceptions\Service\Node\ConfigurationNotPersistedException; | ||||
| @ -18,7 +17,6 @@ class NodeUpdateService | ||||
|     public function __construct( | ||||
|         private ConnectionInterface $connection, | ||||
|         private DaemonConfigurationRepository $configurationRepository, | ||||
|         private Encrypter $encrypter, | ||||
|     ) { | ||||
|     } | ||||
| 
 | ||||
| @ -30,7 +28,7 @@ class NodeUpdateService | ||||
|     public function handle(Node $node, array $data, bool $resetToken = false): Node | ||||
|     { | ||||
|         if ($resetToken) { | ||||
|             $data['daemon_token'] = $this->encrypter->encrypt(Str::random(Node::DAEMON_TOKEN_LENGTH)); | ||||
|             $data['daemon_token'] = encrypt(Str::random(Node::DAEMON_TOKEN_LENGTH)); | ||||
|             $data['daemon_token_id'] = Str::random(Node::DAEMON_TOKEN_ID_LENGTH); | ||||
|         } | ||||
| 
 | ||||
|  | ||||
| @ -8,7 +8,6 @@ use Illuminate\Support\Str; | ||||
| use App\Models\User; | ||||
| use PragmaRX\Google2FA\Google2FA; | ||||
| use Illuminate\Database\ConnectionInterface; | ||||
| use Illuminate\Contracts\Encryption\Encrypter; | ||||
| use App\Exceptions\Service\User\TwoFactorAuthenticationTokenInvalid; | ||||
| 
 | ||||
| class ToggleTwoFactorService | ||||
| @ -18,7 +17,6 @@ class ToggleTwoFactorService | ||||
|      */ | ||||
|     public function __construct( | ||||
|         private ConnectionInterface $connection, | ||||
|         private Encrypter $encrypter, | ||||
|         private Google2FA $google2FA, | ||||
|     ) { | ||||
|     } | ||||
| @ -34,7 +32,7 @@ class ToggleTwoFactorService | ||||
|      */ | ||||
|     public function handle(User $user, string $token, bool $toggleState = null): array | ||||
|     { | ||||
|         $secret = $this->encrypter->decrypt($user->totp_secret); | ||||
|         $secret = decrypt($user->totp_secret); | ||||
| 
 | ||||
|         $isValidToken = $this->google2FA->verifyKey($secret, $token, config()->get('panel.auth.2fa.window')); | ||||
| 
 | ||||
|  | ||||
| @ -3,20 +3,11 @@ | ||||
| namespace App\Services\Users; | ||||
| 
 | ||||
| use App\Models\User; | ||||
| use Illuminate\Contracts\Encryption\Encrypter; | ||||
| 
 | ||||
| class TwoFactorSetupService | ||||
| { | ||||
|     public const VALID_BASE32_CHARACTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'; | ||||
| 
 | ||||
|     /** | ||||
|      * TwoFactorSetupService constructor. | ||||
|      */ | ||||
|     public function __construct( | ||||
|         private Encrypter $encrypter, | ||||
|     ) { | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Generate a 2FA token and store it in the database before returning the | ||||
|      * QR code URL. This URL will need to be attached to a QR generating service in | ||||
| @ -35,7 +26,7 @@ class TwoFactorSetupService | ||||
|             throw new \RuntimeException($exception->getMessage(), 0, $exception); | ||||
|         } | ||||
| 
 | ||||
|         $user->totp_secret = $this->encrypter->encrypt($secret); | ||||
|         $user->totp_secret = encrypt($secret); | ||||
|         $user->save(); | ||||
| 
 | ||||
|         $company = urlencode(preg_replace('/\s/', '', config('app.name'))); | ||||
|  | ||||
| @ -7,22 +7,11 @@ use League\Fractal\Resource\Item; | ||||
| use App\Models\DatabaseHost; | ||||
| use League\Fractal\Resource\NullResource; | ||||
| use App\Services\Acl\Api\AdminAcl; | ||||
| use Illuminate\Contracts\Encryption\Encrypter; | ||||
| 
 | ||||
| class ServerDatabaseTransformer extends BaseTransformer | ||||
| { | ||||
|     protected array $availableIncludes = ['password', 'host']; | ||||
| 
 | ||||
|     private Encrypter $encrypter; | ||||
| 
 | ||||
|     /** | ||||
|      * Perform dependency injection. | ||||
|      */ | ||||
|     public function handle(Encrypter $encrypter) | ||||
|     { | ||||
|         $this->encrypter = $encrypter; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Return the resource name for the JSONAPI output. | ||||
|      */ | ||||
| @ -56,7 +45,7 @@ class ServerDatabaseTransformer extends BaseTransformer | ||||
|     { | ||||
|         return $this->item($model, function (Database $model) { | ||||
|             return [ | ||||
|                 'password' => $this->encrypter->decrypt($model->password), | ||||
|                 'password' => decrypt($model->password), | ||||
|             ]; | ||||
|         }, 'database_password'); | ||||
|     } | ||||
|  | ||||
| @ -6,23 +6,19 @@ use App\Models\Database; | ||||
| use League\Fractal\Resource\Item; | ||||
| use App\Models\Permission; | ||||
| use League\Fractal\Resource\NullResource; | ||||
| use Illuminate\Contracts\Encryption\Encrypter; | ||||
| use App\Contracts\Extensions\HashidsInterface; | ||||
| 
 | ||||
| class DatabaseTransformer extends BaseClientTransformer | ||||
| { | ||||
|     protected array $availableIncludes = ['password']; | ||||
| 
 | ||||
|     private Encrypter $encrypter; | ||||
| 
 | ||||
|     private HashidsInterface $hashids; | ||||
| 
 | ||||
|     /** | ||||
|      * Handle dependency injection. | ||||
|      */ | ||||
|     public function handle(Encrypter $encrypter, HashidsInterface $hashids) | ||||
|     public function handle(HashidsInterface $hashids) | ||||
|     { | ||||
|         $this->encrypter = $encrypter; | ||||
|         $this->hashids = $hashids; | ||||
|     } | ||||
| 
 | ||||
| @ -59,7 +55,7 @@ class DatabaseTransformer extends BaseClientTransformer | ||||
| 
 | ||||
|         return $this->item($database, function (Database $model) { | ||||
|             return [ | ||||
|                 'password' => $this->encrypter->decrypt($model->password), | ||||
|                 'password' => decrypt($model->password), | ||||
|             ]; | ||||
|         }, 'database_password'); | ||||
|     } | ||||
|  | ||||
| @ -2,11 +2,9 @@ | ||||
| 
 | ||||
| use Ramsey\Uuid\Uuid; | ||||
| use Illuminate\Support\Facades\DB; | ||||
| use Illuminate\Container\Container; | ||||
| use Illuminate\Support\Facades\Schema; | ||||
| use Illuminate\Database\Schema\Blueprint; | ||||
| use Illuminate\Database\Migrations\Migration; | ||||
| use Illuminate\Contracts\Encryption\Encrypter; | ||||
| 
 | ||||
| class StoreNodeTokensAsEncryptedValue extends Migration | ||||
| { | ||||
| @ -33,14 +31,11 @@ class StoreNodeTokensAsEncryptedValue extends Migration | ||||
|             $table->text('daemon_token')->change(); | ||||
|         }); | ||||
| 
 | ||||
|         /** @var \Illuminate\Contracts\Encryption\Encrypter $encrypter */ | ||||
|         $encrypter = Container::getInstance()->make(Encrypter::class); | ||||
| 
 | ||||
|         foreach (DB::select('SELECT id, daemon_token FROM nodes') as $datum) { | ||||
|             DB::update('UPDATE nodes SET uuid = ?, daemon_token_id = ?, daemon_token = ? WHERE id = ?', [ | ||||
|                 Uuid::uuid4()->toString(), | ||||
|                 substr($datum->daemon_token, 0, 16), | ||||
|                 $encrypter->encrypt(substr($datum->daemon_token, 16)), | ||||
|                 encrypt(substr($datum->daemon_token, 16)), | ||||
|                 $datum->id, | ||||
|             ]); | ||||
|         } | ||||
| @ -59,12 +54,9 @@ class StoreNodeTokensAsEncryptedValue extends Migration | ||||
|     public function down() | ||||
|     { | ||||
|         DB::transaction(function () { | ||||
|             /** @var \Illuminate\Contracts\Encryption\Encrypter $encrypter */ | ||||
|             $encrypter = Container::getInstance()->make(Encrypter::class); | ||||
| 
 | ||||
|             foreach (DB::select('SELECT id, daemon_token_id, daemon_token FROM nodes') as $datum) { | ||||
|                 DB::update('UPDATE nodes SET daemon_token = ? WHERE id = ?', [ | ||||
|                     $datum->daemon_token_id . $encrypter->decrypt($datum->daemon_token), | ||||
|                     $datum->daemon_token_id . decrypt($datum->daemon_token), | ||||
|                     $datum->id, | ||||
|                 ]); | ||||
|             } | ||||
|  | ||||
| @ -5,28 +5,13 @@ namespace App\Tests\Integration\Api\Daemon; | ||||
| use App\Http\Middleware\Api\Daemon\DaemonAuthenticate; | ||||
| use App\Models\Node; | ||||
| use App\Tests\Unit\Http\Middleware\MiddlewareTestCase; | ||||
| use Illuminate\Contracts\Encryption\Encrypter; | ||||
| use Illuminate\Database\Eloquent\ModelNotFoundException; | ||||
| use Mockery as m; | ||||
| use Mockery\MockInterface; | ||||
| use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException; | ||||
| use Symfony\Component\HttpKernel\Exception\BadRequestHttpException; | ||||
| use Symfony\Component\HttpKernel\Exception\HttpException; | ||||
| 
 | ||||
| class DaemonAuthenticateTest extends MiddlewareTestCase | ||||
| { | ||||
|     private MockInterface $encrypter; | ||||
| 
 | ||||
|     /** | ||||
|      * Setup tests. | ||||
|      */ | ||||
|     public function setUp(): void | ||||
|     { | ||||
|         parent::setUp(); | ||||
| 
 | ||||
|         $this->encrypter = m::mock(Encrypter::class); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Test that if we are accessing the daemon configuration route this middleware is not | ||||
|      * applied in order to allow an unauthenticated request to use a token to grab data. | ||||
| @ -86,8 +71,6 @@ class DaemonAuthenticateTest extends MiddlewareTestCase | ||||
|         $this->request->expects('route->getName')->withNoArgs()->andReturn('random.route'); | ||||
|         $this->request->expects('bearerToken')->withNoArgs()->andReturn($node->daemon_token_id . '.random_string_123'); | ||||
| 
 | ||||
|         $this->encrypter->expects('decrypt')->with($node->daemon_token)->andReturns(decrypt($node->daemon_token)); | ||||
| 
 | ||||
|         $this->getMiddleware()->handle($this->request, $this->getClosureAssertions()); | ||||
|     } | ||||
| 
 | ||||
| @ -116,7 +99,6 @@ class DaemonAuthenticateTest extends MiddlewareTestCase | ||||
| 
 | ||||
|         $this->request->expects('route->getName')->withNoArgs()->andReturn('random.route'); | ||||
|         $this->request->expects('bearerToken')->withNoArgs()->andReturn($node->daemon_token_id . '.the_same'); | ||||
|         $this->encrypter->expects('decrypt')->with($node->daemon_token)->andReturns(decrypt($node->daemon_token)); | ||||
| 
 | ||||
|         $this->getMiddleware()->handle($this->request, $this->getClosureAssertions()); | ||||
|         $this->assertRequestHasAttribute('node'); | ||||
| @ -147,6 +129,6 @@ class DaemonAuthenticateTest extends MiddlewareTestCase | ||||
|      */ | ||||
|     private function getMiddleware(): DaemonAuthenticate | ||||
|     { | ||||
|         return new DaemonAuthenticate($this->encrypter); | ||||
|         return new DaemonAuthenticate(); | ||||
|     } | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Lance Pioch
						Lance Pioch