controller refactoring part 24

This commit is contained in:
Peter Papp
2021-07-21 18:46:55 +02:00
parent 54f1f4c9a8
commit 6d8a7a429c
29 changed files with 561 additions and 209 deletions

File diff suppressed because one or more lines are too long

View File

@@ -51,13 +51,13 @@ namespace PHPSTORM_META {
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
'LaravelCrawlerDetect' => \Jaybizzle\CrawlerDetect\CrawlerDetect::class,
'Laravel\Fortify\Contracts\CreatesNewUsers' => \App\Users\Actions\CreateNewUserAction::class,
'Laravel\Fortify\Contracts\FailedPasswordConfirmationResponse' => \Laravel\Fortify\Http\Responses\FailedPasswordConfirmationResponse::class,
'Laravel\Fortify\Contracts\FailedTwoFactorLoginResponse' => \Laravel\Fortify\Http\Responses\FailedTwoFactorLoginResponse::class,
'Laravel\Fortify\Contracts\LockoutResponse' => \Laravel\Fortify\Http\Responses\LockoutResponse::class,
'Laravel\Fortify\Contracts\LoginResponse' => \Laravel\Fortify\Http\Responses\LoginResponse::class,
'Laravel\Fortify\Contracts\LogoutResponse' => \Laravel\Fortify\Http\Responses\LogoutResponse::class,
'Laravel\Fortify\Contracts\PasswordConfirmedResponse' => \Laravel\Fortify\Http\Responses\PasswordConfirmedResponse::class,
'Laravel\Fortify\Contracts\PasswordUpdateResponse' => \Laravel\Fortify\Http\Responses\PasswordUpdateResponse::class,
'Laravel\Fortify\Contracts\RegisterResponse' => \Laravel\Fortify\Http\Responses\RegisterResponse::class,
'Laravel\Fortify\Contracts\ResetsUserPasswords' => \App\Users\Actions\ResetUserPassword::class,
'Laravel\Fortify\Contracts\TwoFactorAuthenticationProvider' => \Laravel\Fortify\TwoFactorAuthenticationProvider::class,
@@ -68,6 +68,7 @@ namespace PHPSTORM_META {
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
'Spatie\Backup\Helpers\ConsoleOutput' => \Spatie\Backup\Helpers\ConsoleOutput::class,
'Spatie\Backup\Tasks\Cleanup\CleanupStrategy' => \Spatie\Backup\Tasks\Cleanup\Strategies\DefaultStrategy::class,
'Spatie\QueryBuilder\QueryBuilderRequest' => \Spatie\QueryBuilder\QueryBuilderRequest::class,
'Stripe\Util\LoggerInterface' => \Laravel\Cashier\Logger::class,
'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class,
'auth' => \Illuminate\Auth\AuthManager::class,
@@ -93,6 +94,7 @@ namespace PHPSTORM_META {
'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class,
'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class,
'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class,
'command.db.prune' => \Illuminate\Database\Console\PruneCommand::class,
'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class,
'command.down' => \Illuminate\Foundation\Console\DownCommand::class,
'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class,
@@ -140,6 +142,7 @@ namespace PHPSTORM_META {
'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class,
'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class,
'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class,
'command.queue.prune-failed-jobs' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class,
'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class,
'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class,
'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class,
@@ -250,13 +253,13 @@ namespace PHPSTORM_META {
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
'LaravelCrawlerDetect' => \Jaybizzle\CrawlerDetect\CrawlerDetect::class,
'Laravel\Fortify\Contracts\CreatesNewUsers' => \App\Users\Actions\CreateNewUserAction::class,
'Laravel\Fortify\Contracts\FailedPasswordConfirmationResponse' => \Laravel\Fortify\Http\Responses\FailedPasswordConfirmationResponse::class,
'Laravel\Fortify\Contracts\FailedTwoFactorLoginResponse' => \Laravel\Fortify\Http\Responses\FailedTwoFactorLoginResponse::class,
'Laravel\Fortify\Contracts\LockoutResponse' => \Laravel\Fortify\Http\Responses\LockoutResponse::class,
'Laravel\Fortify\Contracts\LoginResponse' => \Laravel\Fortify\Http\Responses\LoginResponse::class,
'Laravel\Fortify\Contracts\LogoutResponse' => \Laravel\Fortify\Http\Responses\LogoutResponse::class,
'Laravel\Fortify\Contracts\PasswordConfirmedResponse' => \Laravel\Fortify\Http\Responses\PasswordConfirmedResponse::class,
'Laravel\Fortify\Contracts\PasswordUpdateResponse' => \Laravel\Fortify\Http\Responses\PasswordUpdateResponse::class,
'Laravel\Fortify\Contracts\RegisterResponse' => \Laravel\Fortify\Http\Responses\RegisterResponse::class,
'Laravel\Fortify\Contracts\ResetsUserPasswords' => \App\Users\Actions\ResetUserPassword::class,
'Laravel\Fortify\Contracts\TwoFactorAuthenticationProvider' => \Laravel\Fortify\TwoFactorAuthenticationProvider::class,
@@ -267,6 +270,7 @@ namespace PHPSTORM_META {
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
'Spatie\Backup\Helpers\ConsoleOutput' => \Spatie\Backup\Helpers\ConsoleOutput::class,
'Spatie\Backup\Tasks\Cleanup\CleanupStrategy' => \Spatie\Backup\Tasks\Cleanup\Strategies\DefaultStrategy::class,
'Spatie\QueryBuilder\QueryBuilderRequest' => \Spatie\QueryBuilder\QueryBuilderRequest::class,
'Stripe\Util\LoggerInterface' => \Laravel\Cashier\Logger::class,
'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class,
'auth' => \Illuminate\Auth\AuthManager::class,
@@ -292,6 +296,7 @@ namespace PHPSTORM_META {
'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class,
'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class,
'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class,
'command.db.prune' => \Illuminate\Database\Console\PruneCommand::class,
'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class,
'command.down' => \Illuminate\Foundation\Console\DownCommand::class,
'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class,
@@ -339,6 +344,7 @@ namespace PHPSTORM_META {
'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class,
'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class,
'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class,
'command.queue.prune-failed-jobs' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class,
'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class,
'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class,
'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class,
@@ -449,13 +455,13 @@ namespace PHPSTORM_META {
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
'LaravelCrawlerDetect' => \Jaybizzle\CrawlerDetect\CrawlerDetect::class,
'Laravel\Fortify\Contracts\CreatesNewUsers' => \App\Users\Actions\CreateNewUserAction::class,
'Laravel\Fortify\Contracts\FailedPasswordConfirmationResponse' => \Laravel\Fortify\Http\Responses\FailedPasswordConfirmationResponse::class,
'Laravel\Fortify\Contracts\FailedTwoFactorLoginResponse' => \Laravel\Fortify\Http\Responses\FailedTwoFactorLoginResponse::class,
'Laravel\Fortify\Contracts\LockoutResponse' => \Laravel\Fortify\Http\Responses\LockoutResponse::class,
'Laravel\Fortify\Contracts\LoginResponse' => \Laravel\Fortify\Http\Responses\LoginResponse::class,
'Laravel\Fortify\Contracts\LogoutResponse' => \Laravel\Fortify\Http\Responses\LogoutResponse::class,
'Laravel\Fortify\Contracts\PasswordConfirmedResponse' => \Laravel\Fortify\Http\Responses\PasswordConfirmedResponse::class,
'Laravel\Fortify\Contracts\PasswordUpdateResponse' => \Laravel\Fortify\Http\Responses\PasswordUpdateResponse::class,
'Laravel\Fortify\Contracts\RegisterResponse' => \Laravel\Fortify\Http\Responses\RegisterResponse::class,
'Laravel\Fortify\Contracts\ResetsUserPasswords' => \App\Users\Actions\ResetUserPassword::class,
'Laravel\Fortify\Contracts\TwoFactorAuthenticationProvider' => \Laravel\Fortify\TwoFactorAuthenticationProvider::class,
@@ -466,6 +472,7 @@ namespace PHPSTORM_META {
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
'Spatie\Backup\Helpers\ConsoleOutput' => \Spatie\Backup\Helpers\ConsoleOutput::class,
'Spatie\Backup\Tasks\Cleanup\CleanupStrategy' => \Spatie\Backup\Tasks\Cleanup\Strategies\DefaultStrategy::class,
'Spatie\QueryBuilder\QueryBuilderRequest' => \Spatie\QueryBuilder\QueryBuilderRequest::class,
'Stripe\Util\LoggerInterface' => \Laravel\Cashier\Logger::class,
'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class,
'auth' => \Illuminate\Auth\AuthManager::class,
@@ -491,6 +498,7 @@ namespace PHPSTORM_META {
'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class,
'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class,
'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class,
'command.db.prune' => \Illuminate\Database\Console\PruneCommand::class,
'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class,
'command.down' => \Illuminate\Foundation\Console\DownCommand::class,
'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class,
@@ -538,6 +546,7 @@ namespace PHPSTORM_META {
'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class,
'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class,
'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class,
'command.queue.prune-failed-jobs' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class,
'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class,
'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class,
'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class,
@@ -648,13 +657,13 @@ namespace PHPSTORM_META {
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
'LaravelCrawlerDetect' => \Jaybizzle\CrawlerDetect\CrawlerDetect::class,
'Laravel\Fortify\Contracts\CreatesNewUsers' => \App\Users\Actions\CreateNewUserAction::class,
'Laravel\Fortify\Contracts\FailedPasswordConfirmationResponse' => \Laravel\Fortify\Http\Responses\FailedPasswordConfirmationResponse::class,
'Laravel\Fortify\Contracts\FailedTwoFactorLoginResponse' => \Laravel\Fortify\Http\Responses\FailedTwoFactorLoginResponse::class,
'Laravel\Fortify\Contracts\LockoutResponse' => \Laravel\Fortify\Http\Responses\LockoutResponse::class,
'Laravel\Fortify\Contracts\LoginResponse' => \Laravel\Fortify\Http\Responses\LoginResponse::class,
'Laravel\Fortify\Contracts\LogoutResponse' => \Laravel\Fortify\Http\Responses\LogoutResponse::class,
'Laravel\Fortify\Contracts\PasswordConfirmedResponse' => \Laravel\Fortify\Http\Responses\PasswordConfirmedResponse::class,
'Laravel\Fortify\Contracts\PasswordUpdateResponse' => \Laravel\Fortify\Http\Responses\PasswordUpdateResponse::class,
'Laravel\Fortify\Contracts\RegisterResponse' => \Laravel\Fortify\Http\Responses\RegisterResponse::class,
'Laravel\Fortify\Contracts\ResetsUserPasswords' => \App\Users\Actions\ResetUserPassword::class,
'Laravel\Fortify\Contracts\TwoFactorAuthenticationProvider' => \Laravel\Fortify\TwoFactorAuthenticationProvider::class,
@@ -665,6 +674,7 @@ namespace PHPSTORM_META {
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
'Spatie\Backup\Helpers\ConsoleOutput' => \Spatie\Backup\Helpers\ConsoleOutput::class,
'Spatie\Backup\Tasks\Cleanup\CleanupStrategy' => \Spatie\Backup\Tasks\Cleanup\Strategies\DefaultStrategy::class,
'Spatie\QueryBuilder\QueryBuilderRequest' => \Spatie\QueryBuilder\QueryBuilderRequest::class,
'Stripe\Util\LoggerInterface' => \Laravel\Cashier\Logger::class,
'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class,
'auth' => \Illuminate\Auth\AuthManager::class,
@@ -690,6 +700,7 @@ namespace PHPSTORM_META {
'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class,
'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class,
'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class,
'command.db.prune' => \Illuminate\Database\Console\PruneCommand::class,
'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class,
'command.down' => \Illuminate\Foundation\Console\DownCommand::class,
'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class,
@@ -737,6 +748,7 @@ namespace PHPSTORM_META {
'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class,
'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class,
'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class,
'command.queue.prune-failed-jobs' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class,
'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class,
'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class,
'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class,
@@ -847,13 +859,13 @@ namespace PHPSTORM_META {
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
'LaravelCrawlerDetect' => \Jaybizzle\CrawlerDetect\CrawlerDetect::class,
'Laravel\Fortify\Contracts\CreatesNewUsers' => \App\Users\Actions\CreateNewUserAction::class,
'Laravel\Fortify\Contracts\FailedPasswordConfirmationResponse' => \Laravel\Fortify\Http\Responses\FailedPasswordConfirmationResponse::class,
'Laravel\Fortify\Contracts\FailedTwoFactorLoginResponse' => \Laravel\Fortify\Http\Responses\FailedTwoFactorLoginResponse::class,
'Laravel\Fortify\Contracts\LockoutResponse' => \Laravel\Fortify\Http\Responses\LockoutResponse::class,
'Laravel\Fortify\Contracts\LoginResponse' => \Laravel\Fortify\Http\Responses\LoginResponse::class,
'Laravel\Fortify\Contracts\LogoutResponse' => \Laravel\Fortify\Http\Responses\LogoutResponse::class,
'Laravel\Fortify\Contracts\PasswordConfirmedResponse' => \Laravel\Fortify\Http\Responses\PasswordConfirmedResponse::class,
'Laravel\Fortify\Contracts\PasswordUpdateResponse' => \Laravel\Fortify\Http\Responses\PasswordUpdateResponse::class,
'Laravel\Fortify\Contracts\RegisterResponse' => \Laravel\Fortify\Http\Responses\RegisterResponse::class,
'Laravel\Fortify\Contracts\ResetsUserPasswords' => \App\Users\Actions\ResetUserPassword::class,
'Laravel\Fortify\Contracts\TwoFactorAuthenticationProvider' => \Laravel\Fortify\TwoFactorAuthenticationProvider::class,
@@ -864,6 +876,7 @@ namespace PHPSTORM_META {
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
'Spatie\Backup\Helpers\ConsoleOutput' => \Spatie\Backup\Helpers\ConsoleOutput::class,
'Spatie\Backup\Tasks\Cleanup\CleanupStrategy' => \Spatie\Backup\Tasks\Cleanup\Strategies\DefaultStrategy::class,
'Spatie\QueryBuilder\QueryBuilderRequest' => \Spatie\QueryBuilder\QueryBuilderRequest::class,
'Stripe\Util\LoggerInterface' => \Laravel\Cashier\Logger::class,
'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class,
'auth' => \Illuminate\Auth\AuthManager::class,
@@ -889,6 +902,7 @@ namespace PHPSTORM_META {
'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class,
'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class,
'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class,
'command.db.prune' => \Illuminate\Database\Console\PruneCommand::class,
'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class,
'command.down' => \Illuminate\Foundation\Console\DownCommand::class,
'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class,
@@ -936,6 +950,7 @@ namespace PHPSTORM_META {
'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class,
'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class,
'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class,
'command.queue.prune-failed-jobs' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class,
'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class,
'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class,
'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class,
@@ -1046,13 +1061,13 @@ namespace PHPSTORM_META {
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
'LaravelCrawlerDetect' => \Jaybizzle\CrawlerDetect\CrawlerDetect::class,
'Laravel\Fortify\Contracts\CreatesNewUsers' => \App\Users\Actions\CreateNewUserAction::class,
'Laravel\Fortify\Contracts\FailedPasswordConfirmationResponse' => \Laravel\Fortify\Http\Responses\FailedPasswordConfirmationResponse::class,
'Laravel\Fortify\Contracts\FailedTwoFactorLoginResponse' => \Laravel\Fortify\Http\Responses\FailedTwoFactorLoginResponse::class,
'Laravel\Fortify\Contracts\LockoutResponse' => \Laravel\Fortify\Http\Responses\LockoutResponse::class,
'Laravel\Fortify\Contracts\LoginResponse' => \Laravel\Fortify\Http\Responses\LoginResponse::class,
'Laravel\Fortify\Contracts\LogoutResponse' => \Laravel\Fortify\Http\Responses\LogoutResponse::class,
'Laravel\Fortify\Contracts\PasswordConfirmedResponse' => \Laravel\Fortify\Http\Responses\PasswordConfirmedResponse::class,
'Laravel\Fortify\Contracts\PasswordUpdateResponse' => \Laravel\Fortify\Http\Responses\PasswordUpdateResponse::class,
'Laravel\Fortify\Contracts\RegisterResponse' => \Laravel\Fortify\Http\Responses\RegisterResponse::class,
'Laravel\Fortify\Contracts\ResetsUserPasswords' => \App\Users\Actions\ResetUserPassword::class,
'Laravel\Fortify\Contracts\TwoFactorAuthenticationProvider' => \Laravel\Fortify\TwoFactorAuthenticationProvider::class,
@@ -1063,6 +1078,7 @@ namespace PHPSTORM_META {
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
'Spatie\Backup\Helpers\ConsoleOutput' => \Spatie\Backup\Helpers\ConsoleOutput::class,
'Spatie\Backup\Tasks\Cleanup\CleanupStrategy' => \Spatie\Backup\Tasks\Cleanup\Strategies\DefaultStrategy::class,
'Spatie\QueryBuilder\QueryBuilderRequest' => \Spatie\QueryBuilder\QueryBuilderRequest::class,
'Stripe\Util\LoggerInterface' => \Laravel\Cashier\Logger::class,
'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class,
'auth' => \Illuminate\Auth\AuthManager::class,
@@ -1088,6 +1104,7 @@ namespace PHPSTORM_META {
'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class,
'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class,
'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class,
'command.db.prune' => \Illuminate\Database\Console\PruneCommand::class,
'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class,
'command.down' => \Illuminate\Foundation\Console\DownCommand::class,
'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class,
@@ -1135,6 +1152,7 @@ namespace PHPSTORM_META {
'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class,
'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class,
'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class,
'command.queue.prune-failed-jobs' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class,
'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class,
'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class,
'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class,
@@ -1245,13 +1263,13 @@ namespace PHPSTORM_META {
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
'LaravelCrawlerDetect' => \Jaybizzle\CrawlerDetect\CrawlerDetect::class,
'Laravel\Fortify\Contracts\CreatesNewUsers' => \App\Users\Actions\CreateNewUserAction::class,
'Laravel\Fortify\Contracts\FailedPasswordConfirmationResponse' => \Laravel\Fortify\Http\Responses\FailedPasswordConfirmationResponse::class,
'Laravel\Fortify\Contracts\FailedTwoFactorLoginResponse' => \Laravel\Fortify\Http\Responses\FailedTwoFactorLoginResponse::class,
'Laravel\Fortify\Contracts\LockoutResponse' => \Laravel\Fortify\Http\Responses\LockoutResponse::class,
'Laravel\Fortify\Contracts\LoginResponse' => \Laravel\Fortify\Http\Responses\LoginResponse::class,
'Laravel\Fortify\Contracts\LogoutResponse' => \Laravel\Fortify\Http\Responses\LogoutResponse::class,
'Laravel\Fortify\Contracts\PasswordConfirmedResponse' => \Laravel\Fortify\Http\Responses\PasswordConfirmedResponse::class,
'Laravel\Fortify\Contracts\PasswordUpdateResponse' => \Laravel\Fortify\Http\Responses\PasswordUpdateResponse::class,
'Laravel\Fortify\Contracts\RegisterResponse' => \Laravel\Fortify\Http\Responses\RegisterResponse::class,
'Laravel\Fortify\Contracts\ResetsUserPasswords' => \App\Users\Actions\ResetUserPassword::class,
'Laravel\Fortify\Contracts\TwoFactorAuthenticationProvider' => \Laravel\Fortify\TwoFactorAuthenticationProvider::class,
@@ -1262,6 +1280,7 @@ namespace PHPSTORM_META {
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
'Spatie\Backup\Helpers\ConsoleOutput' => \Spatie\Backup\Helpers\ConsoleOutput::class,
'Spatie\Backup\Tasks\Cleanup\CleanupStrategy' => \Spatie\Backup\Tasks\Cleanup\Strategies\DefaultStrategy::class,
'Spatie\QueryBuilder\QueryBuilderRequest' => \Spatie\QueryBuilder\QueryBuilderRequest::class,
'Stripe\Util\LoggerInterface' => \Laravel\Cashier\Logger::class,
'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class,
'auth' => \Illuminate\Auth\AuthManager::class,
@@ -1287,6 +1306,7 @@ namespace PHPSTORM_META {
'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class,
'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class,
'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class,
'command.db.prune' => \Illuminate\Database\Console\PruneCommand::class,
'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class,
'command.down' => \Illuminate\Foundation\Console\DownCommand::class,
'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class,
@@ -1334,6 +1354,7 @@ namespace PHPSTORM_META {
'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class,
'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class,
'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class,
'command.queue.prune-failed-jobs' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class,
'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class,
'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class,
'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class,
@@ -1444,13 +1465,13 @@ namespace PHPSTORM_META {
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
'LaravelCrawlerDetect' => \Jaybizzle\CrawlerDetect\CrawlerDetect::class,
'Laravel\Fortify\Contracts\CreatesNewUsers' => \App\Users\Actions\CreateNewUserAction::class,
'Laravel\Fortify\Contracts\FailedPasswordConfirmationResponse' => \Laravel\Fortify\Http\Responses\FailedPasswordConfirmationResponse::class,
'Laravel\Fortify\Contracts\FailedTwoFactorLoginResponse' => \Laravel\Fortify\Http\Responses\FailedTwoFactorLoginResponse::class,
'Laravel\Fortify\Contracts\LockoutResponse' => \Laravel\Fortify\Http\Responses\LockoutResponse::class,
'Laravel\Fortify\Contracts\LoginResponse' => \Laravel\Fortify\Http\Responses\LoginResponse::class,
'Laravel\Fortify\Contracts\LogoutResponse' => \Laravel\Fortify\Http\Responses\LogoutResponse::class,
'Laravel\Fortify\Contracts\PasswordConfirmedResponse' => \Laravel\Fortify\Http\Responses\PasswordConfirmedResponse::class,
'Laravel\Fortify\Contracts\PasswordUpdateResponse' => \Laravel\Fortify\Http\Responses\PasswordUpdateResponse::class,
'Laravel\Fortify\Contracts\RegisterResponse' => \Laravel\Fortify\Http\Responses\RegisterResponse::class,
'Laravel\Fortify\Contracts\ResetsUserPasswords' => \App\Users\Actions\ResetUserPassword::class,
'Laravel\Fortify\Contracts\TwoFactorAuthenticationProvider' => \Laravel\Fortify\TwoFactorAuthenticationProvider::class,
@@ -1461,6 +1482,7 @@ namespace PHPSTORM_META {
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
'Spatie\Backup\Helpers\ConsoleOutput' => \Spatie\Backup\Helpers\ConsoleOutput::class,
'Spatie\Backup\Tasks\Cleanup\CleanupStrategy' => \Spatie\Backup\Tasks\Cleanup\Strategies\DefaultStrategy::class,
'Spatie\QueryBuilder\QueryBuilderRequest' => \Spatie\QueryBuilder\QueryBuilderRequest::class,
'Stripe\Util\LoggerInterface' => \Laravel\Cashier\Logger::class,
'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class,
'auth' => \Illuminate\Auth\AuthManager::class,
@@ -1486,6 +1508,7 @@ namespace PHPSTORM_META {
'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class,
'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class,
'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class,
'command.db.prune' => \Illuminate\Database\Console\PruneCommand::class,
'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class,
'command.down' => \Illuminate\Foundation\Console\DownCommand::class,
'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class,
@@ -1533,6 +1556,7 @@ namespace PHPSTORM_META {
'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class,
'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class,
'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class,
'command.queue.prune-failed-jobs' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class,
'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class,
'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class,
'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class,
@@ -1643,13 +1667,13 @@ namespace PHPSTORM_META {
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
'LaravelCrawlerDetect' => \Jaybizzle\CrawlerDetect\CrawlerDetect::class,
'Laravel\Fortify\Contracts\CreatesNewUsers' => \App\Users\Actions\CreateNewUserAction::class,
'Laravel\Fortify\Contracts\FailedPasswordConfirmationResponse' => \Laravel\Fortify\Http\Responses\FailedPasswordConfirmationResponse::class,
'Laravel\Fortify\Contracts\FailedTwoFactorLoginResponse' => \Laravel\Fortify\Http\Responses\FailedTwoFactorLoginResponse::class,
'Laravel\Fortify\Contracts\LockoutResponse' => \Laravel\Fortify\Http\Responses\LockoutResponse::class,
'Laravel\Fortify\Contracts\LoginResponse' => \Laravel\Fortify\Http\Responses\LoginResponse::class,
'Laravel\Fortify\Contracts\LogoutResponse' => \Laravel\Fortify\Http\Responses\LogoutResponse::class,
'Laravel\Fortify\Contracts\PasswordConfirmedResponse' => \Laravel\Fortify\Http\Responses\PasswordConfirmedResponse::class,
'Laravel\Fortify\Contracts\PasswordUpdateResponse' => \Laravel\Fortify\Http\Responses\PasswordUpdateResponse::class,
'Laravel\Fortify\Contracts\RegisterResponse' => \Laravel\Fortify\Http\Responses\RegisterResponse::class,
'Laravel\Fortify\Contracts\ResetsUserPasswords' => \App\Users\Actions\ResetUserPassword::class,
'Laravel\Fortify\Contracts\TwoFactorAuthenticationProvider' => \Laravel\Fortify\TwoFactorAuthenticationProvider::class,
@@ -1660,6 +1684,7 @@ namespace PHPSTORM_META {
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
'Spatie\Backup\Helpers\ConsoleOutput' => \Spatie\Backup\Helpers\ConsoleOutput::class,
'Spatie\Backup\Tasks\Cleanup\CleanupStrategy' => \Spatie\Backup\Tasks\Cleanup\Strategies\DefaultStrategy::class,
'Spatie\QueryBuilder\QueryBuilderRequest' => \Spatie\QueryBuilder\QueryBuilderRequest::class,
'Stripe\Util\LoggerInterface' => \Laravel\Cashier\Logger::class,
'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class,
'auth' => \Illuminate\Auth\AuthManager::class,
@@ -1685,6 +1710,7 @@ namespace PHPSTORM_META {
'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class,
'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class,
'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class,
'command.db.prune' => \Illuminate\Database\Console\PruneCommand::class,
'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class,
'command.down' => \Illuminate\Foundation\Console\DownCommand::class,
'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class,
@@ -1732,6 +1758,7 @@ namespace PHPSTORM_META {
'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class,
'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class,
'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class,
'command.queue.prune-failed-jobs' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class,
'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class,
'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class,
'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class,
@@ -1842,13 +1869,13 @@ namespace PHPSTORM_META {
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
'LaravelCrawlerDetect' => \Jaybizzle\CrawlerDetect\CrawlerDetect::class,
'Laravel\Fortify\Contracts\CreatesNewUsers' => \App\Users\Actions\CreateNewUserAction::class,
'Laravel\Fortify\Contracts\FailedPasswordConfirmationResponse' => \Laravel\Fortify\Http\Responses\FailedPasswordConfirmationResponse::class,
'Laravel\Fortify\Contracts\FailedTwoFactorLoginResponse' => \Laravel\Fortify\Http\Responses\FailedTwoFactorLoginResponse::class,
'Laravel\Fortify\Contracts\LockoutResponse' => \Laravel\Fortify\Http\Responses\LockoutResponse::class,
'Laravel\Fortify\Contracts\LoginResponse' => \Laravel\Fortify\Http\Responses\LoginResponse::class,
'Laravel\Fortify\Contracts\LogoutResponse' => \Laravel\Fortify\Http\Responses\LogoutResponse::class,
'Laravel\Fortify\Contracts\PasswordConfirmedResponse' => \Laravel\Fortify\Http\Responses\PasswordConfirmedResponse::class,
'Laravel\Fortify\Contracts\PasswordUpdateResponse' => \Laravel\Fortify\Http\Responses\PasswordUpdateResponse::class,
'Laravel\Fortify\Contracts\RegisterResponse' => \Laravel\Fortify\Http\Responses\RegisterResponse::class,
'Laravel\Fortify\Contracts\ResetsUserPasswords' => \App\Users\Actions\ResetUserPassword::class,
'Laravel\Fortify\Contracts\TwoFactorAuthenticationProvider' => \Laravel\Fortify\TwoFactorAuthenticationProvider::class,
@@ -1859,6 +1886,7 @@ namespace PHPSTORM_META {
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
'Spatie\Backup\Helpers\ConsoleOutput' => \Spatie\Backup\Helpers\ConsoleOutput::class,
'Spatie\Backup\Tasks\Cleanup\CleanupStrategy' => \Spatie\Backup\Tasks\Cleanup\Strategies\DefaultStrategy::class,
'Spatie\QueryBuilder\QueryBuilderRequest' => \Spatie\QueryBuilder\QueryBuilderRequest::class,
'Stripe\Util\LoggerInterface' => \Laravel\Cashier\Logger::class,
'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class,
'auth' => \Illuminate\Auth\AuthManager::class,
@@ -1884,6 +1912,7 @@ namespace PHPSTORM_META {
'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class,
'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class,
'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class,
'command.db.prune' => \Illuminate\Database\Console\PruneCommand::class,
'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class,
'command.down' => \Illuminate\Foundation\Console\DownCommand::class,
'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class,
@@ -1931,6 +1960,7 @@ namespace PHPSTORM_META {
'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class,
'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class,
'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class,
'command.queue.prune-failed-jobs' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class,
'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class,
'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class,
'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class,
@@ -2041,13 +2071,13 @@ namespace PHPSTORM_META {
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
'LaravelCrawlerDetect' => \Jaybizzle\CrawlerDetect\CrawlerDetect::class,
'Laravel\Fortify\Contracts\CreatesNewUsers' => \App\Users\Actions\CreateNewUserAction::class,
'Laravel\Fortify\Contracts\FailedPasswordConfirmationResponse' => \Laravel\Fortify\Http\Responses\FailedPasswordConfirmationResponse::class,
'Laravel\Fortify\Contracts\FailedTwoFactorLoginResponse' => \Laravel\Fortify\Http\Responses\FailedTwoFactorLoginResponse::class,
'Laravel\Fortify\Contracts\LockoutResponse' => \Laravel\Fortify\Http\Responses\LockoutResponse::class,
'Laravel\Fortify\Contracts\LoginResponse' => \Laravel\Fortify\Http\Responses\LoginResponse::class,
'Laravel\Fortify\Contracts\LogoutResponse' => \Laravel\Fortify\Http\Responses\LogoutResponse::class,
'Laravel\Fortify\Contracts\PasswordConfirmedResponse' => \Laravel\Fortify\Http\Responses\PasswordConfirmedResponse::class,
'Laravel\Fortify\Contracts\PasswordUpdateResponse' => \Laravel\Fortify\Http\Responses\PasswordUpdateResponse::class,
'Laravel\Fortify\Contracts\RegisterResponse' => \Laravel\Fortify\Http\Responses\RegisterResponse::class,
'Laravel\Fortify\Contracts\ResetsUserPasswords' => \App\Users\Actions\ResetUserPassword::class,
'Laravel\Fortify\Contracts\TwoFactorAuthenticationProvider' => \Laravel\Fortify\TwoFactorAuthenticationProvider::class,
@@ -2058,6 +2088,7 @@ namespace PHPSTORM_META {
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
'Spatie\Backup\Helpers\ConsoleOutput' => \Spatie\Backup\Helpers\ConsoleOutput::class,
'Spatie\Backup\Tasks\Cleanup\CleanupStrategy' => \Spatie\Backup\Tasks\Cleanup\Strategies\DefaultStrategy::class,
'Spatie\QueryBuilder\QueryBuilderRequest' => \Spatie\QueryBuilder\QueryBuilderRequest::class,
'Stripe\Util\LoggerInterface' => \Laravel\Cashier\Logger::class,
'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class,
'auth' => \Illuminate\Auth\AuthManager::class,
@@ -2083,6 +2114,7 @@ namespace PHPSTORM_META {
'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class,
'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class,
'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class,
'command.db.prune' => \Illuminate\Database\Console\PruneCommand::class,
'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class,
'command.down' => \Illuminate\Foundation\Console\DownCommand::class,
'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class,
@@ -2130,6 +2162,7 @@ namespace PHPSTORM_META {
'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class,
'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class,
'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class,
'command.queue.prune-failed-jobs' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class,
'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class,
'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class,
'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class,

View File

@@ -3,7 +3,7 @@
/**
* A helper file for Laravel, to provide autocomplete information to your IDE
* Generated for Laravel 8.41.0.
* Generated for Laravel 8.50.0.
*
* This file should not be included in your code, only analyzed by your IDE!
*
@@ -989,6 +989,7 @@
* @param \Closure|string|null $concrete
* @param bool $shared
* @return void
* @throws \TypeError
* @static
*/
public static function bind($abstract, $concrete = null, $shared = false)
@@ -1087,6 +1088,32 @@
{ //Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
$instance->singletonIf($abstract, $concrete);
}
/**
* Register a scoped binding in the container.
*
* @param string $abstract
* @param \Closure|string|null $concrete
* @return void
* @static
*/
public static function scoped($abstract, $concrete = null)
{ //Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
$instance->scoped($abstract, $concrete);
}
/**
* Register a scoped binding if it hasn't already been registered.
*
* @param string $abstract
* @param \Closure|string|null $concrete
* @return void
* @static
*/
public static function scopedIf($abstract, $concrete = null)
{ //Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
$instance->scopedIf($abstract, $concrete);
}
/**
* "Extend" an abstract type in the container.
@@ -1359,6 +1386,17 @@
{ //Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
$instance->forgetInstances();
}
/**
* Clear all of the scoped instances from the container.
*
* @return void
* @static
*/
public static function forgetScopedInstances()
{ //Method inherited from \Illuminate\Container\Container
/** @var \Illuminate\Foundation\Application $instance */
$instance->forgetScopedInstances();
}
/**
* Get the globally available instance of the container.
@@ -1769,7 +1807,7 @@
/**
* Get the currently authenticated user.
*
* @return \Domain\Traffic\Models\User|null
* @return \App\Users\Models\User|null
* @static
*/
public static function user()
@@ -1804,7 +1842,7 @@
* Log the given user ID into the application without sessions or cookies.
*
* @param mixed $id
* @return \Domain\Traffic\Models\User|false
* @return \App\Users\Models\User|false
* @static
*/
public static function onceUsingId($id)
@@ -1882,7 +1920,7 @@
*
* @param mixed $id
* @param bool $remember
* @return \Domain\Traffic\Models\User|false
* @return \App\Users\Models\User|false
* @static
*/
public static function loginUsingId($id, $remember = false)
@@ -1934,7 +1972,7 @@
*
* @param string $password
* @param string $attribute
* @return bool|null
* @return \App\Users\Models\User|null
* @throws \Illuminate\Auth\AuthenticationException
* @static
*/
@@ -1958,7 +1996,7 @@
/**
* Get the last user we attempted to authenticate.
*
* @return \Domain\Traffic\Models\User
* @return \App\Users\Models\User
* @static
*/
public static function getLastAttempted()
@@ -2060,7 +2098,7 @@
/**
* Return the currently cached user.
*
* @return \Domain\Traffic\Models\User|null
* @return \App\Users\Models\User|null
* @static
*/
public static function getUser()
@@ -2106,7 +2144,7 @@
/**
* Determine if the current user is authenticated. If not, throw an exception.
*
* @return \Domain\Traffic\Models\User
* @return \App\Users\Models\User
* @throws \Illuminate\Auth\AuthenticationException
* @static
*/
@@ -2587,6 +2625,19 @@
{
/** @var \Illuminate\View\Compilers\BladeCompiler $instance */
return $instance->compileEndOnce();
}
/**
* Add a handler to be executed before echoing a given class.
*
* @param string|callable $class
* @param callable|null $handler
* @return void
* @static
*/
public static function stringable($class, $handler = null)
{
/** @var \Illuminate\View\Compilers\BladeCompiler $instance */
$instance->stringable($class, $handler);
}
/**
* Compile Blade echos into valid PHP.
@@ -2599,6 +2650,18 @@
{
/** @var \Illuminate\View\Compilers\BladeCompiler $instance */
return $instance->compileEchos($value);
}
/**
* Apply the echo handler for the value if it exists.
*
* @param $value string
* @return string
* @static
*/
public static function applyEchoHandler($value)
{
/** @var \Illuminate\View\Compilers\BladeCompiler $instance */
return $instance->applyEchoHandler($value);
}
}
@@ -2877,6 +2940,7 @@
*
* @param mixed $command
* @return mixed
* @throws \RuntimeException
* @static
*/
public static function dispatchToQueue($command)
@@ -2959,6 +3023,45 @@
{
/** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */
$instance->assertNotDispatched($command, $callback);
}
/**
* Assert if a job was explicitly dispatched synchronously based on a truth-test callback.
*
* @param string|\Closure $command
* @param callable|int|null $callback
* @return void
* @static
*/
public static function assertDispatchedSync($command, $callback = null)
{
/** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */
$instance->assertDispatchedSync($command, $callback);
}
/**
* Assert if a job was pushed synchronously a number of times.
*
* @param string $command
* @param int $times
* @return void
* @static
*/
public static function assertDispatchedSyncTimes($command, $times = 1)
{
/** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */
$instance->assertDispatchedSyncTimes($command, $times);
}
/**
* Determine if a job was dispatched based on a truth-test callback.
*
* @param string|\Closure $command
* @param callable|null $callback
* @return void
* @static
*/
public static function assertNotDispatchedSync($command, $callback = null)
{
/** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */
$instance->assertNotDispatchedSync($command, $callback);
}
/**
* Assert if a job was dispatched after the response was sent based on a truth-test callback.
@@ -3048,6 +3151,19 @@
{
/** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */
return $instance->dispatched($command, $callback);
}
/**
* Get all of the jobs dispatched synchronously matching a truth-test callback.
*
* @param string $command
* @param callable|null $callback
* @return \Illuminate\Support\Collection
* @static
*/
public static function dispatchedSync($command, $callback = null)
{
/** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */
return $instance->dispatchedSync($command, $callback);
}
/**
* Get all of the jobs dispatched after the response was sent matching a truth-test callback.
@@ -3093,6 +3209,18 @@
* @return bool
* @static
*/
public static function hasDispatchedSync($command)
{
/** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */
return $instance->hasDispatchedSync($command);
}
/**
* Determine if there are any stored commands for a given class.
*
* @param string $command
* @return bool
* @static
*/
public static function hasDispatchedAfterResponse($command)
{
/** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */
@@ -4666,6 +4794,17 @@
{ //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->raw($value);
}
/**
* Determine if the database connection has modified any database records.
*
* @return bool
* @static
*/
public static function hasModifiedRecords()
{ //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->hasModifiedRecords();
}
/**
* Indicate if any records have been modified.
@@ -4678,6 +4817,18 @@
{ //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\MySqlConnection $instance */
$instance->recordsHaveBeenModified($value);
}
/**
* Set the record modification state.
*
* @param bool $value
* @return \Illuminate\Database\MySqlConnection
* @static
*/
public static function setRecordModificationState($value)
{ //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->setRecordModificationState($value);
}
/**
* Reset the record modification state.
@@ -4689,6 +4840,18 @@
{ //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\MySqlConnection $instance */
$instance->forgetRecordModificationState();
}
/**
* Indicate that the connection should use the write PDO connection for reads.
*
* @param bool $value
* @return \Illuminate\Database\MySqlConnection
* @static
*/
public static function useWriteConnectionWhenReading($value = true)
{ //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->useWriteConnectionWhenReading($value);
}
/**
* Is Doctrine available?
@@ -4814,6 +4977,17 @@
{ //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->getName();
}
/**
* Get the database connection full name.
*
* @return string|null
* @static
*/
public static function getNameWithReadWriteType()
{ //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->getNameWithReadWriteType();
}
/**
* Get an option from the configuration options.
@@ -5052,6 +5226,18 @@
{ //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->setDatabaseName($database);
}
/**
* Set the read / write type of the connection.
*
* @param string|null $readWriteType
* @return \Illuminate\Database\MySqlConnection
* @static
*/
public static function setReadWriteType($readWriteType)
{ //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->setReadWriteType($readWriteType);
}
/**
* Get the table prefix for the connection.
@@ -5178,6 +5364,7 @@
*
* @param callable $callback
* @return void
* @throws \RuntimeException
* @static
*/
public static function afterCommit($callback)
@@ -5569,6 +5756,7 @@
* @param string $path
* @param array $data
* @return mixed
* @throws \Illuminate\Contracts\Filesystem\FileNotFoundException
* @static
*/
public static function requireOnce($path, $data = [])
@@ -5724,6 +5912,7 @@
* @param string $target
* @param string $link
* @return void
* @throws \RuntimeException
* @static
*/
public static function relativeLink($target, $link)
@@ -5784,6 +5973,7 @@
*
* @param string $path
* @return string|null
* @throws \RuntimeException
* @static
*/
public static function guessExtension($path)
@@ -6710,6 +6900,7 @@
*
* @param string $locale
* @return void
* @throws \InvalidArgumentException
* @static
*/
public static function setLocale($locale)
@@ -6806,6 +6997,8 @@
/**
*
*
* @method static \Illuminate\Log\Logger withContext(array $context = [])
* @method static \Illuminate\Log\Logger withoutContext()
* @method static void write(string $level, string $message, array $context = [])
* @method static void listen(\Closure $callback)
* @see \Illuminate\Log\Logger
@@ -7078,6 +7271,7 @@
*
* @param array $config
* @return \Swift_Transport
* @throws \InvalidArgumentException
* @static
*/
public static function createTransport($config)
@@ -11860,6 +12054,7 @@
*
* @param string $type
* @return void
* @throws \InvalidArgumentException
* @static
*/
public static function defaultMorphKeyType($type)
@@ -12776,6 +12971,18 @@
{
/** @var \Illuminate\Filesystem\FilesystemManager $instance */
return $instance->cloud();
}
/**
* Build an on-demand disk.
*
* @param string|array $config
* @return \Illuminate\Filesystem\FilesystemAdapter
* @static
*/
public static function build($config)
{
/** @var \Illuminate\Filesystem\FilesystemManager $instance */
return $instance->build($config);
}
/**
* Create an instance of the local driver.
@@ -13919,6 +14126,17 @@
{
/** @var \Illuminate\Validation\Factory $instance */
$instance->replacer($rule, $replacer);
}
/**
* Indicate that unvalidated array keys should be excluded, even if the parent array was validated.
*
* @return void
* @static
*/
public static function excludeUnvalidatedArrayKeys()
{
/** @var \Illuminate\Validation\Factory $instance */
$instance->excludeUnvalidatedArrayKeys();
}
/**
* Set the Validator instance resolver.
@@ -14457,6 +14675,7 @@
* @param string $name
* @param string|null $content
* @return void
* @throws \InvalidArgumentException
* @static
*/
public static function slot($name, $content = null)
@@ -16086,7 +16305,7 @@ namespace {
* @param mixed $operator
* @param mixed $value
* @param string $boolean
* @return \Illuminate\Database\Eloquent\Model|static
* @return \Illuminate\Database\Eloquent\Model|static|null
* @static
*/
public static function firstWhere($column, $operator = null, $value = null, $boolean = 'and')
@@ -16423,8 +16642,7 @@ namespace {
* @param array $columns
* @param string $cursorName
* @param string|null $cursor
* @return \Illuminate\Contracts\Pagination\Paginator
* @throws \Illuminate\Pagination\CursorPaginationException
* @return \Illuminate\Contracts\Pagination\CursorPaginator
* @static
*/
public static function cursorPaginate($perPage = null, $columns = [], $cursorName = 'cursor', $cursor = null)
@@ -17046,6 +17264,19 @@ namespace {
return $instance->withAvg($relation, $column);
}
/**
* Add subselect queries to include the existence of related models.
*
* @param string|array $relation
* @return \Illuminate\Database\Eloquent\Builder|static
* @static
*/
public static function withExists($relation)
{
/** @var \Illuminate\Database\Eloquent\Builder $instance */
return $instance->withExists($relation);
}
/**
* Merge the where constraints from another query to the current query.
*
@@ -17105,6 +17336,7 @@ namespace {
* @param callable $callback
* @param int $count
* @return bool
* @throws \RuntimeException
* @static
*/
public static function each($callback, $count = 1000)
@@ -17150,6 +17382,7 @@ namespace {
*
* @param int $chunkSize
* @return \Illuminate\Support\LazyCollection
* @throws \InvalidArgumentException
* @static
*/
public static function lazy($chunkSize = 1000)
@@ -17165,6 +17398,7 @@ namespace {
* @param string|null $column
* @param string|null $alias
* @return \Illuminate\Support\LazyCollection
* @throws \InvalidArgumentException
* @static
*/
public static function lazyById($chunkSize = 1000, $column = null, $alias = null)
@@ -17201,21 +17435,6 @@ namespace {
return $instance->baseSole($columns);
}
/**
* Apply the callback's query changes if the given "value" is true.
*
* @param mixed $value
* @param callable $callback
* @param callable|null $default
* @return mixed|$this
* @static
*/
public static function when($value, $callback, $default = null)
{
/** @var \Illuminate\Database\Eloquent\Builder $instance */
return $instance->when($value, $callback, $default);
}
/**
* Pass the query to a given callback.
*
@@ -17230,12 +17449,27 @@ namespace {
}
/**
* Apply the callback's query changes if the given "value" is false.
* Apply the callback if the given "value" is truthy.
*
* @param mixed $value
* @param callable $callback
* @param callable|null $default
* @return mixed|$this
* @return mixed
* @static
*/
public static function when($value, $callback, $default = null)
{
/** @var \Illuminate\Database\Eloquent\Builder $instance */
return $instance->when($value, $callback, $default);
}
/**
* Apply the callback if the given "value" is falsy.
*
* @param mixed $value
* @param callable $callback
* @param callable|null $default
* @return mixed
* @static
*/
public static function unless($value, $callback, $default = null)
@@ -17763,7 +17997,7 @@ namespace {
/**
* Add an "or where null" clause to the query.
*
* @param string $column
* @param string|array $column
* @return \Illuminate\Database\Query\Builder
* @static
*/
@@ -18441,7 +18675,7 @@ namespace {
/**
* Add a descending "order by" clause to the query.
*
* @param string $column
* @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Query\Expression|string $column
* @return \Illuminate\Database\Query\Builder
* @static
*/
@@ -18577,7 +18811,7 @@ namespace {
/**
* Remove all existing orders and optionally add a new order.
*
* @param string|null $column
* @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Query\Expression|string|null $column
* @param string $direction
* @return \Illuminate\Database\Query\Builder
* @static
@@ -18652,6 +18886,31 @@ namespace {
return $instance->sharedLock();
}
/**
* Register a closure to be invoked before the query is executed.
*
* @param callable $callback
* @return \Illuminate\Database\Query\Builder
* @static
*/
public static function beforeQuery($callback)
{
/** @var \Illuminate\Database\Query\Builder $instance */
return $instance->beforeQuery($callback);
}
/**
* Invoke the "before query" modification callbacks.
*
* @return void
* @static
*/
public static function applyBeforeQueryCallbacks()
{
/** @var \Illuminate\Database\Query\Builder $instance */
$instance->applyBeforeQueryCallbacks();
}
/**
* Get the SQL representation of the query.
*

View File

@@ -1,19 +1,19 @@
<?php
use Domain\Sharing\Controllers\ShareController;
use Domain\Sharing\Controllers\OGSiteController;
use Domain\Files\Controllers\VisitorShowFileController;
use Domain\Files\Controllers\VisitorUploadFileController;
use Domain\Zipping\Controllers\VisitorZipFilesController;
use Domain\Zipping\Controllers\VisitorZipFolderController;
use Domain\Folders\Controllers\VisitorCreateFolderController;
use Domain\Sharing\Controllers\WebCrawlerOpenGraphController;
use Domain\Items\Controllers\VisitorMoveFileOrFolderController;
use Domain\Items\Controllers\VisitorDeleteFileOrFolderController;
use Domain\Items\Controllers\VisitorRenameFileOrFolderController;
use Domain\Sharing\Controllers\VisitorUnlockLockedShareController;
use Domain\Browsing\Controllers\VisitorBrowseFolderContentController;
use Domain\Folders\Controllers\VisitorNavigationFolderTreeController;
use Domain\Browsing\Controllers\VisitorSearchFilesAndFoldersController;
use Domain\Sharing\Controllers\VisitorAuthenticateProtectedShareController;
// Browse functions
Route::group(['prefix' => 'editor'], function () {
@@ -33,7 +33,7 @@ Route::group(['prefix' => 'zip'], function () {
// Browse share content
Route::group(['prefix' => 'browse'], function () {
Route::post('/authenticate/{shared}', VisitorAuthenticateProtectedShareController::class);
Route::post('/authenticate/{shared}', VisitorUnlockLockedShareController::class);
Route::get('/folders/{id}/{shared}', VisitorBrowseFolderContentController::class);
Route::get('/navigation/{shared}', VisitorNavigationFolderTreeController::class);
Route::get('/search/{shared}', VisitorSearchFilesAndFoldersController::class);
@@ -41,4 +41,4 @@ Route::group(['prefix' => 'browse'], function () {
Route::get('/share/{shared}', [ShareController::class, 'show']);
});
Route::get('/og-site/{shared}', OGSiteController::class);
Route::get('/og-site/{shared}', WebCrawlerOpenGraphController::class);

View File

@@ -1,9 +1,9 @@
<?php
use Domain\Homepage\Controllers\IndexController;
use Domain\Sharing\Controllers\OGSiteController;
use Domain\Invoices\Controllers\AdminInvoiceController;
use Domain\Sharing\Controllers\SharePublicIndexController;
use Domain\Sharing\Controllers\WebCrawlerOpenGraphController;
use Domain\Subscriptions\Controllers\StripeWebhookController;
use Domain\SetupWizard\Controllers\CreateAdminAccountController;
use Domain\Localization\Controllers\CurrentLocalizationController;
@@ -20,7 +20,7 @@ Route::get('/translations/{lang}', CurrentLocalizationController::class);
// Get og site for web crawlers
if (Crawler::isCrawler()) {
Route::get('/share/{shared}', OGSiteController::class);
Route::get('/share/{shared}', WebCrawlerOpenGraphController::class);
} else {
Route::get('/share/{shared}', SharePublicIndexController::class);
}

View File

@@ -9,6 +9,7 @@ use Domain\Folders\Models\Folder;
use Laravel\Sanctum\HasApiTokens;
use Illuminate\Support\Collection;
use Database\Factories\UserFactory;
use Domain\Settings\Models\Setting;
use Kyslik\ColumnSortable\Sortable;
use Illuminate\Support\Facades\Storage;
use Illuminate\Notifications\Notifiable;
@@ -22,6 +23,10 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
/**
* @property mixed id
* @property Setting settings
*/
class User extends Authenticatable implements MustVerifyEmail
{
use TwoFactorAuthenticatable;

View File

@@ -5,7 +5,8 @@ use Domain\Files\Models\File;
use Domain\Sharing\Models\Share;
use Domain\Folders\Models\Folder;
use Illuminate\Support\Collection;
use Support\Services\HelperService;
use Domain\Sharing\Actions\ProtectShareRecordAction;
use Domain\Sharing\Actions\VerifyAccessToItemAction;
/**
* Browse shared folder
@@ -13,7 +14,8 @@ use Support\Services\HelperService;
class VisitorBrowseFolderContentController
{
public function __construct(
public HelperService $helper,
private ProtectShareRecordAction $protectShareRecord,
private VerifyAccessToItemAction $verifyAccessToItem,
) {
}
@@ -22,10 +24,10 @@ class VisitorBrowseFolderContentController
Share $shared,
): Collection {
// Check ability to access protected share record
$this->helper->check_protected_share_record($shared);
($this->protectShareRecord)($shared);
// Check if user can get directory
$this->helper->check_item_access($id, $shared);
($this->verifyAccessToItem)($id, $shared);
// Get files and folders
$folders = Folder::where('user_id', $shared->user_id)

View File

@@ -7,8 +7,8 @@ use Domain\Files\Models\File;
use Domain\Sharing\Models\Share;
use Domain\Folders\Models\Folder;
use Illuminate\Support\Collection;
use Support\Services\HelperService;
use App\Http\Controllers\Controller;
use Domain\Sharing\Actions\ProtectShareRecordAction;
/**
* Visitor search shared files
@@ -16,7 +16,7 @@ use App\Http\Controllers\Controller;
class VisitorSearchFilesAndFoldersController extends Controller
{
public function __construct(
public HelperService $helper,
private ProtectShareRecordAction $protectShareRecord,
) {
}
@@ -25,7 +25,7 @@ class VisitorSearchFilesAndFoldersController extends Controller
Share $shared,
): Collection {
// Check ability to access protected share record
$this->helper->check_protected_share_record($shared);
($this->protectShareRecord)($shared);
$query = remove_accents(
$request->input('query')

View File

@@ -14,7 +14,8 @@ class GetFileController extends Controller
public function __construct(
private RecordDownloadAction $recordDownload,
private DownloadFileAction $downloadFile,
) {}
) {
}
/**
* Get file

View File

@@ -1,12 +1,14 @@
<?php
namespace Domain\Files\Controllers\FileAccess;
use Domain\Files\Models\File;
use Domain\Sharing\Models\Share;
use App\Http\Controllers\Controller;
use Domain\Files\Models\File as UserFile;
use Domain\Files\Actions\DownloadFileAction;
use Domain\Traffic\Actions\RecordDownloadAction;
use Domain\Sharing\Actions\ProtectShareRecordAction;
use Symfony\Component\HttpFoundation\BinaryFileResponse;
use Domain\Sharing\Actions\VerifyAccessToItemWithinAction;
/**
* Get file public
@@ -16,6 +18,8 @@ class VisitorGetFileController extends Controller
public function __construct(
private DownloadFileAction $downloadFile,
private RecordDownloadAction $recordDownload,
private ProtectShareRecordAction $protectShareRecord,
private VerifyAccessToItemWithinAction $verifyAccessToItemWithin,
) {
}
@@ -24,15 +28,15 @@ class VisitorGetFileController extends Controller
Share $shared,
): BinaryFileResponse {
// Check ability to access protected share files
$this->helper->check_protected_share_record($shared);
($this->protectShareRecord)($shared);
// Get file record
$file = UserFile::where('user_id', $shared->user_id)
$file = File::where('user_id', $shared->user_id)
->where('basename', $filename)
->firstOrFail();
// Check file access
$this->helper->check_guest_access_to_shared_items($shared, $file);
($this->verifyAccessToItemWithin)($shared, $file);
// Store user download size
($this->recordDownload)(
@@ -40,6 +44,7 @@ class VisitorGetFileController extends Controller
user_id: $shared->user_id,
);
// Finally download file
return ($this->downloadFile)($file, $shared->user_id);
}
}

View File

@@ -6,7 +6,9 @@ use App\Http\Controllers\Controller;
use Domain\Files\Models\File as UserFile;
use Domain\Traffic\Actions\RecordDownloadAction;
use Domain\Files\Actions\DownloadThumbnailAction;
use Domain\Sharing\Actions\ProtectShareRecordAction;
use Symfony\Component\HttpFoundation\StreamedResponse;
use Domain\Sharing\Actions\VerifyAccessToItemWithinAction;
/**
* Get public image thumbnail
@@ -16,6 +18,8 @@ class VisitorGetThumbnailController extends Controller
public function __construct(
private RecordDownloadAction $recordDownload,
private DownloadThumbnailAction $downloadThumbnail,
private ProtectShareRecordAction $protectShareRecord,
private VerifyAccessToItemWithinAction $verifyAccessToItemWithin,
) {
}
@@ -24,7 +28,7 @@ class VisitorGetThumbnailController extends Controller
Share $shared,
): StreamedResponse {
// Check ability to access protected share files
$this->helper->check_protected_share_record($shared);
($this->protectShareRecord)($shared);
// Get file record
$file = UserFile::where('user_id', $shared->user_id)
@@ -32,7 +36,7 @@ class VisitorGetThumbnailController extends Controller
->firstOrFail();
// Check file access
$this->helper->check_guest_access_to_shared_items($shared, $file);
($this->verifyAccessToItemWithin)($shared, $file);
// Store user download size
($this->recordDownload)(
@@ -40,6 +44,7 @@ class VisitorGetThumbnailController extends Controller
user_id: $shared->user_id,
);
// Finally download thumbnail
return ($this->downloadThumbnail)($file, $shared->user_id);
}
}

View File

@@ -4,8 +4,8 @@ namespace Domain\Files\Controllers;
use Domain\Files\Models\File;
use Illuminate\Http\Response;
use Domain\Sharing\Models\Share;
use Support\Services\HelperService;
use Domain\Files\Resources\FileResource;
use Domain\Sharing\Actions\ProtectShareRecordAction;
/**
* Get shared file record
@@ -13,7 +13,7 @@ use Domain\Files\Resources\FileResource;
class VisitorShowFileController
{
public function __construct(
public HelperService $helper,
private ProtectShareRecordAction $protectShareRecord,
) {
}
@@ -21,7 +21,7 @@ class VisitorShowFileController
Share $shared
): Response {
// Check ability to access protected share files
$this->helper->check_protected_share_record($shared);
($this->protectShareRecord)($shared);
// Get file
$file = File::whereUserId($shared->user_id)

View File

@@ -3,11 +3,12 @@ namespace Domain\Files\Controllers;
use Illuminate\Http\Response;
use Domain\Sharing\Models\Share;
use Support\Services\HelperService;
use App\Http\Controllers\Controller;
use Domain\Files\Requests\UploadRequest;
use Domain\Files\Actions\UploadFileAction;
use Support\Demo\Actions\FakeUploadFileAction;
use Domain\Sharing\Actions\ProtectShareRecordAction;
use Domain\Sharing\Actions\VerifyAccessToItemAction;
/**
* guest user upload file into shared folder
@@ -15,22 +16,23 @@ use Support\Demo\Actions\FakeUploadFileAction;
class VisitorUploadFileController extends Controller
{
public function __construct(
public HelperService $helper,
private UploadFileAction $uploadFile,
private FakeUploadFileAction $fakeUploadFile,
private ProtectShareRecordAction $protectShareRecord,
private VerifyAccessToItemAction $verifyAccessToItem,
) {
}
public function __invoke(
FakeUploadFileAction $fakeUploadFile,
UploadFileAction $uploadFile,
UploadRequest $request,
Share $shared,
): Response | array {
if (is_demo_account($shared->user->email)) {
return ($fakeUploadFile)($request);
return ($this->fakeUploadFile)($request);
}
// Check ability to access protected share record
$this->helper->check_protected_share_record($shared);
($this->protectShareRecord)($shared);
// Check shared permission
if (is_visitor($shared)) {
@@ -38,10 +40,10 @@ class VisitorUploadFileController extends Controller
}
// Check access to requested directory
$this->helper->check_item_access($request->folder_id, $shared);
($this->verifyAccessToItem)($request->folder_id, $shared);
// Return new uploaded file
$new_file = ($uploadFile)($request, $shared);
$new_file = ($this->uploadFile)($request, $shared);
// Set public access url
$new_file->setPublicUrl($shared->token);

View File

@@ -19,6 +19,8 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
/**
* @method static whereUserId($user_id)
* @method static whereId($id)
* @property string folder_id
* @property string id
*/
class File extends Model
{

View File

@@ -3,11 +3,12 @@ namespace Domain\Folders\Controllers;
use Illuminate\Http\Response;
use Domain\Sharing\Models\Share;
use Support\Services\HelperService;
use App\Http\Controllers\Controller;
use Domain\Folders\Actions\CreateFolderAction;
use Domain\Folders\Requests\CreateFolderRequest;
use Support\Demo\Actions\FakeCreateFolderAction;
use Domain\Sharing\Actions\ProtectShareRecordAction;
use Domain\Sharing\Actions\VerifyAccessToItemAction;
/**
* Create new folder for guest user with edit permission
@@ -15,22 +16,23 @@ use Support\Demo\Actions\FakeCreateFolderAction;
class VisitorCreateFolderController extends Controller
{
public function __construct(
public HelperService $helper,
private CreateFolderAction $createFolder,
private ProtectShareRecordAction $protectShareRecord,
private VerifyAccessToItemAction $verifyAccessToItem,
private FakeCreateFolderAction $fakeCreateFolderAction,
) {
}
public function __invoke(
FakeCreateFolderAction $fakeCreateFolderAction,
CreateFolderAction $createFolder,
CreateFolderRequest $request,
Share $shared,
): Response | array {
if (is_demo_account($shared->user->email)) {
return ($fakeCreateFolderAction)($request);
return ($this->fakeCreateFolderAction)($request);
}
// Check ability to access protected share record
$this->helper->check_protected_share_record($shared);
($this->protectShareRecord)($shared);
// Check shared permission
if (is_visitor($shared)) {
@@ -38,10 +40,10 @@ class VisitorCreateFolderController extends Controller
}
// Check access to requested directory
$this->helper->check_item_access($request->parent_id, $shared);
($this->verifyAccessToItem)($request->parent_id, $shared);
// Create folder
$folder = ($createFolder)($request, $shared);
$folder = ($this->createFolder)($request, $shared);
return response($folder, 201);
}

View File

@@ -3,8 +3,9 @@ namespace Domain\Folders\Controllers;
use Domain\Sharing\Models\Share;
use Domain\Folders\Models\Folder;
use Support\Services\HelperService;
use App\Http\Controllers\Controller;
use Domain\Sharing\Actions\ProtectShareRecordAction;
use Domain\Sharing\Actions\VerifyAccessToItemAction;
/**
* Get navigation tree of shared folder
@@ -12,7 +13,8 @@ use App\Http\Controllers\Controller;
class VisitorNavigationFolderTreeController extends Controller
{
public function __construct(
public HelperService $helper,
private ProtectShareRecordAction $protectShareRecord,
private VerifyAccessToItemAction $verifyAccessToItem,
) {
}
@@ -20,10 +22,10 @@ class VisitorNavigationFolderTreeController extends Controller
Share $shared,
): array {
// Check ability to access protected share record
$this->helper->check_protected_share_record($shared);
($this->protectShareRecord)($shared);
// Check if user can get directory
$this->helper->check_item_access($shared->item_id, $shared);
($this->verifyAccessToItem)($shared->item_id, $shared);
// Get folders
$folders = Folder::with('folders:id,parent_id,name')

View File

@@ -3,10 +3,11 @@ namespace Domain\Items\Controllers;
use Illuminate\Http\Response;
use Domain\Sharing\Models\Share;
use Support\Services\HelperService;
use App\Http\Controllers\Controller;
use Domain\Items\Requests\DeleteItemRequest;
use Domain\Items\Actions\DeleteFileOrFolderAction;
use Domain\Sharing\Actions\ProtectShareRecordAction;
use Domain\Sharing\Actions\VerifyAccessToItemAction;
/**
* Delete item for guest user with edit permission
@@ -14,8 +15,9 @@ use Domain\Items\Actions\DeleteFileOrFolderAction;
class VisitorDeleteFileOrFolderController extends Controller
{
public function __construct(
private HelperService $helper,
private DeleteFileOrFolderAction $deleteFileOrFolder,
private ProtectShareRecordAction $protectShareRecord,
private VerifyAccessToItemAction $verifyAccessToItem,
) {
}
@@ -30,7 +32,7 @@ class VisitorDeleteFileOrFolderController extends Controller
);
// Check ability to access protected share record
$this->helper->check_protected_share_record($shared);
($this->protectShareRecord)($shared);
// Check shared permission
if (is_visitor($shared)) {
@@ -43,9 +45,9 @@ class VisitorDeleteFileOrFolderController extends Controller
// Check access to requested item
if ($file['type'] === 'folder') {
$this->helper->check_item_access($item->id, $shared);
($this->verifyAccessToItem)($item->id, $shared);
} else {
$this->helper->check_item_access($item->folder_id, $shared);
($this->verifyAccessToItem)($item->folder_id, $shared);
}
// Delete item

View File

@@ -4,10 +4,11 @@ namespace Domain\Items\Controllers;
use Domain\Files\Models\File;
use Illuminate\Http\Response;
use Domain\Sharing\Models\Share;
use Support\Services\HelperService;
use App\Http\Controllers\Controller;
use Domain\Items\Requests\MoveItemRequest;
use Domain\Items\Actions\MoveFileOrFolderAction;
use Domain\Sharing\Actions\ProtectShareRecordAction;
use Domain\Sharing\Actions\VerifyAccessToItemAction;
/**
* Move item for guest user with edit permission
@@ -15,8 +16,9 @@ use Domain\Items\Actions\MoveFileOrFolderAction;
class VisitorMoveFileOrFolderController extends Controller
{
public function __construct(
private HelperService $helper,
private MoveFileOrFolderAction $moveFileOrFolder,
private ProtectShareRecordAction $protectShareRecord,
private VerifyAccessToItemAction $verifyAccessToItem,
) {
}
@@ -31,7 +33,7 @@ class VisitorMoveFileOrFolderController extends Controller
);
// Check ability to access protected share record
$this->helper->check_protected_share_record($shared);
($this->protectShareRecord)($shared);
// Check shared permission
if (is_visitor($shared)) {
@@ -40,7 +42,7 @@ class VisitorMoveFileOrFolderController extends Controller
foreach ($request->input('items') as $item) {
if ($item['type'] === 'folder') {
$this->helper->check_item_access([
($this->verifyAccessToItem)([
$request->input('to_id'), $item['id'],
], $shared);
}
@@ -50,7 +52,7 @@ class VisitorMoveFileOrFolderController extends Controller
->where('user_id', $shared->user_id)
->firstOrFail();
$this->helper->check_item_access([
($this->verifyAccessToItem)([
$request->input('to_id'), $file->folder_id,
], $shared);
}

View File

@@ -3,10 +3,11 @@ namespace Domain\Items\Controllers;
use Illuminate\Http\Response;
use Domain\Sharing\Models\Share;
use Support\Services\HelperService;
use App\Http\Controllers\Controller;
use Domain\Items\Requests\RenameItemRequest;
use Domain\Items\Actions\RenameFileOrFolderAction;
use Domain\Sharing\Actions\ProtectShareRecordAction;
use Domain\Sharing\Actions\VerifyAccessToItemAction;
use Domain\Folders\Actions\UpdateFolderPropertyAction;
use Support\Demo\Actions\FakeRenameFileOrFolderAction;
@@ -16,8 +17,9 @@ use Support\Demo\Actions\FakeRenameFileOrFolderAction;
class VisitorRenameFileOrFolderController extends Controller
{
public function __construct(
private HelperService $helper,
private RenameFileOrFolderAction $renameFileOrFolder,
private ProtectShareRecordAction $protectShareRecord,
private VerifyAccessToItemAction $verifyAccessToItem,
private UpdateFolderPropertyAction $updateFolderProperty,
private FakeRenameFileOrFolderAction $fakeRenameFileOrFolder,
) {
@@ -27,14 +29,14 @@ class VisitorRenameFileOrFolderController extends Controller
RenameItemRequest $request,
string $id,
Share $shared,
): Response {
): Response | array {
// Return fake renamed item in demo
if (is_demo_account($shared->user->email)) {
return ($this->fakeRenameFileOrFolder)($request, $id);
}
// Check ability to access protected share record
$this->helper->check_protected_share_record($shared);
($this->protectShareRecord)($shared);
// Check shared permission
if (is_visitor($shared)) {
@@ -46,9 +48,9 @@ class VisitorRenameFileOrFolderController extends Controller
// Check access to requested item
if ($request->input('type') === 'folder') {
$this->helper->check_item_access($item->id, $shared);
($this->verifyAccessToItem)($item->id, $shared);
} else {
$this->helper->check_item_access($item->folder_id, $shared);
($this->verifyAccessToItem)($item->folder_id, $shared);
}
// If request have a change folder icon values set the folder icon

View File

@@ -0,0 +1,33 @@
<?php
namespace Domain\Sharing\Actions;
use Domain\Sharing\Models\Share;
class ProtectShareRecordAction
{
public function __invoke(Share $shared): void
{
if ($shared->is_protected) {
$abort_message = "Sorry, you don't have permission";
if (! request()->hasCookie('share_session')) {
abort(403, $abort_message);
}
// Get shared session
$share_session = json_decode(
request()->cookie('share_session')
);
// Check if is requested same share record
if ($share_session->token !== $shared->token) {
abort(403, $abort_message);
}
// Check if share record was authenticated previously via ShareController@authenticate
if (! $share_session->authenticated) {
abort(403, $abort_message);
}
}
}
}

View File

@@ -0,0 +1,41 @@
<?php
namespace Domain\Sharing\Actions;
use Illuminate\Support\Arr;
use Domain\Sharing\Models\Share;
use Domain\Folders\Models\Folder;
class VerifyAccessToItemAction
{
/**
* Check access to requested directory
*/
public function __invoke(
string | array $requested_id,
Share $shared,
): void {
// Get all children folders
$foldersIds = Folder::with('folders:id,parent_id,id,name')
->where('user_id', $shared->user_id)
->where('parent_id', $shared->item_id)
->get();
// Get all authorized parent folders by shared folder as root of tree
$accessible_folder_ids = Arr::flatten([filter_folders_ids($foldersIds), $shared->item_id]);
// Check user access
if (is_array($requested_id)) {
foreach ($requested_id as $id) {
if (! in_array($id, $accessible_folder_ids)) {
abort(403);
}
}
}
if (! is_array($requested_id)) {
if (! in_array($requested_id, $accessible_folder_ids)) {
abort(403);
}
}
}
}

View File

@@ -0,0 +1,33 @@
<?php
namespace Domain\Sharing\Actions;
use Domain\Files\Models\File;
use Domain\Sharing\Models\Share;
class VerifyAccessToItemWithinAction
{
public function __construct(
private VerifyAccessToItemAction $verifyAccessToItem,
) {
}
/**
* Check user file access
*/
public function __invoke(
Share $shared,
File $file
): void {
// Check by parent folder permission
if ($shared->type === 'folder') {
($this->verifyAccessToItem)($file->folder_id, $shared);
}
// Check by single file permission
if ($shared->type === 'file') {
if ($shared->item_id !== $file->id) {
abort(403);
}
}
}
}

View File

@@ -8,14 +8,18 @@ use Domain\Sharing\Actions\SendViaEmailAction;
class ShareViaEmailController extends Controller
{
public function __construct(
private SendViaEmailAction $sendLinkToEmailAction,
) {
}
public function __invoke(
SendViaEmailAction $sendLinkToEmailAction,
Request $request,
string $token,
): Response {
($sendLinkToEmailAction)(
$request->input('emails'),
$token
($this->sendLinkToEmailAction)(
emails: $request->input('emails'),
token: $token,
);
return response('Done!', 204);

View File

@@ -9,7 +9,7 @@ use Illuminate\Support\Facades\Hash;
use Domain\Sharing\Resources\ShareResource;
use Domain\Sharing\Requests\AuthenticateShareRequest;
class VisitorAuthenticateProtectedShareController extends Controller
class VisitorUnlockLockedShareController extends Controller
{
/**
* Check Password for protected item

View File

@@ -5,7 +5,7 @@ use Illuminate\View\View;
use Domain\Sharing\Models\Share;
use App\Http\Controllers\Controller;
class OGSiteController extends Controller
class WebCrawlerOpenGraphController extends Controller
{
/**
* Get og site for web crawlers

View File

@@ -12,6 +12,12 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
* @method static whereNotNull(string $string)
* @method static where(string $string, string $token)
* @property string user_id
* @property mixed is_protected
* @property string token
* @property string item_id
* @property string type
* @property string password
* @property User user
*/
class Share extends Model
{

View File

@@ -5,9 +5,10 @@ use Illuminate\Http\Request;
use Domain\Files\Models\File;
use Illuminate\Http\Response;
use Domain\Sharing\Models\Share;
use Support\Services\HelperService;
use App\Http\Controllers\Controller;
use Domain\Zipping\Actions\ZipFilesAction;
use Domain\Sharing\Actions\ProtectShareRecordAction;
use Domain\Sharing\Actions\VerifyAccessToItemAction;
/**
* Guest download multiple files via zip
@@ -15,7 +16,8 @@ use Domain\Zipping\Actions\ZipFilesAction;
class VisitorZipFilesController extends Controller
{
public function __construct(
public HelperService $helper,
private ProtectShareRecordAction $protectShareRecord,
private VerifyAccessToItemAction $verifyAccessToItem,
) {
}
@@ -25,7 +27,7 @@ class VisitorZipFilesController extends Controller
Share $shared,
): Response {
// Check ability to access protected share record
$this->helper->check_protected_share_record($shared);
($this->protectShareRecord)($shared);
$file_parent_folders = File::whereUserId($shared->user_id)
->whereIn('id', $request->items)
@@ -34,7 +36,7 @@ class VisitorZipFilesController extends Controller
->toArray();
// Check access to requested directory
$this->helper->check_item_access($file_parent_folders, $shared);
($this->verifyAccessToItem)($file_parent_folders, $shared);
// Get requested files
$files = File::whereUserId($shared->user_id)

View File

@@ -4,9 +4,10 @@ namespace Domain\Zipping\Controllers;
use Illuminate\Http\Response;
use Domain\Sharing\Models\Share;
use Domain\Folders\Models\Folder;
use Support\Services\HelperService;
use App\Http\Controllers\Controller;
use Domain\Zipping\Actions\ZipFolderAction;
use Domain\Sharing\Actions\ProtectShareRecordAction;
use Domain\Sharing\Actions\VerifyAccessToItemAction;
/**
* Guest download folder via zip
@@ -14,7 +15,8 @@ use Domain\Zipping\Actions\ZipFolderAction;
class VisitorZipFolderController extends Controller
{
public function __construct(
public HelperService $helper,
private ProtectShareRecordAction $protectShareRecord,
private VerifyAccessToItemAction $verifyAccessToItem,
) {
}
@@ -24,10 +26,10 @@ class VisitorZipFolderController extends Controller
Share $shared,
): Response {
// Check ability to access protected share record
$this->helper->check_protected_share_record($shared);
($this->protectShareRecord)($shared);
// Check access to requested folder
$this->helper->check_item_access($id, $shared);
($this->verifyAccessToItem)($id, $shared);
// Get folder
$folder = Folder::whereUserId($shared->user_id)

View File

@@ -1,93 +0,0 @@
<?php
namespace Support\Services;
use Illuminate\Support\Arr;
use Domain\Files\Models\File;
use Domain\Sharing\Models\Share;
use Domain\Folders\Models\Folder;
class HelperService
{
/**
* Check access to requested directory
*
* @param int|array $requested_id
* @param string $shared Shared record detail
*/
public function check_item_access($requested_id, $shared)
{
// Get all children folders
$foldersIds = Folder::with('folders:id,parent_id,id,name')
->where('user_id', $shared->user_id)
->where('parent_id', $shared->item_id)
->get();
// Get all authorized parent folders by shared folder as root of tree
$accessible_folder_ids = Arr::flatten([filter_folders_ids($foldersIds), $shared->item_id]);
// Check user access
if (is_array($requested_id)) {
foreach ($requested_id as $id) {
if (! in_array($id, $accessible_folder_ids)) {
abort(403);
}
}
}
if (! is_array($requested_id)) {
if (! in_array($requested_id, $accessible_folder_ids)) {
abort(403);
}
}
}
/**
* Check user file access
*
* @param $shared
* @param $file
*/
public function check_guest_access_to_shared_items($shared, $file): void
{
// Check by parent folder permission
if ($shared->type === 'folder') {
$this->check_item_access($file->folder_id, $shared);
}
// Check by single file permission
if ($shared->type === 'file') {
if ($shared->item_id !== $file->id) {
abort(403);
}
}
}
/**
* @param Share $shared
*/
public function check_protected_share_record(Share $shared): void
{
if ($shared->is_protected) {
$abort_message = "Sorry, you don't have permission";
if (! request()->hasCookie('share_session')) {
abort(403, $abort_message);
}
// Get shared session
$share_session = json_decode(
request()->cookie('share_session')
);
// Check if is requested same share record
if ($share_session->token !== $shared->token) {
abort(403, $abort_message);
}
// Check if share record was authenticated previously via ShareController@authenticate
if (! $share_session->authenticated) {
abort(403, $abort_message);
}
}
}
}