Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F117667596
D4412.1774873333.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Authored By
Unknown
Size
20 KB
Referenced Files
None
Subscribers
None
D4412.1774873333.diff
View Options
diff --git a/src/app/Console/Kernel.php b/src/app/Console/Kernel.php
--- a/src/app/Console/Kernel.php
+++ b/src/app/Console/Kernel.php
@@ -11,10 +11,8 @@
* Define the application's command schedule.
*
* @param Schedule $schedule The application's command schedule
- *
- * @return void
*/
- protected function schedule(Schedule $schedule)
+ protected function schedule(Schedule $schedule): void
{
// This imports countries and the current set of IPv4 and IPv6 networks allocated to countries.
$schedule->command('data:import')->dailyAt('05:00');
@@ -33,14 +31,15 @@
// This collects some statistics into the database
$schedule->command('data:stats:collector')->dailyAt('23:00');
+
+ // https://laravel.com/docs/10.x/upgrade#redis-cache-tags
+ $schedule->command('cache:prune-stale-tags')->hourly();
}
/**
* Register the commands for the application.
- *
- * @return void
*/
- protected function commands()
+ protected function commands(): void
{
$this->load(__DIR__ . '/Commands');
diff --git a/src/app/Exceptions/Handler.php b/src/app/Exceptions/Handler.php
--- a/src/app/Exceptions/Handler.php
+++ b/src/app/Exceptions/Handler.php
@@ -25,7 +25,7 @@
/**
* Register the exception handling callbacks for the application.
*/
- public function register()
+ public function register(): void
{
$this->reportable(function (\Throwable $e) {
// Rollback uncommitted transactions
diff --git a/src/app/Http/Kernel.php b/src/app/Http/Kernel.php
--- a/src/app/Http/Kernel.php
+++ b/src/app/Http/Kernel.php
@@ -58,7 +58,7 @@
*
* @var array<string, class-string|string>
*/
- protected $routeMiddleware = [
+ protected $middlewareAliases = [
'admin' => \App\Http\Middleware\AuthenticateAdmin::class,
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
diff --git a/src/app/Http/Middleware/TrustHosts.php b/src/app/Http/Middleware/TrustHosts.php
--- a/src/app/Http/Middleware/TrustHosts.php
+++ b/src/app/Http/Middleware/TrustHosts.php
@@ -11,7 +11,7 @@
*
* @return array<int, string|null>
*/
- public function hosts()
+ public function hosts(): array
{
return [
$this->allSubdomainsOfApplicationUrl(),
diff --git a/src/app/Providers/AppServiceProvider.php b/src/app/Providers/AppServiceProvider.php
--- a/src/app/Providers/AppServiceProvider.php
+++ b/src/app/Providers/AppServiceProvider.php
@@ -13,10 +13,8 @@
{
/**
* Register any application services.
- *
- * @return void
*/
- public function register()
+ public function register(): void
{
Passport::ignoreMigrations();
Passport::ignoreRoutes();
@@ -62,10 +60,8 @@
/**
* Bootstrap any application services.
- *
- * @return void
*/
- public function boot()
+ public function boot(): void
{
\App\Domain::observe(\App\Observers\DomainObserver::class);
\App\Entitlement::observe(\App\Observers\EntitlementObserver::class);
diff --git a/src/app/Providers/AuthServiceProvider.php b/src/app/Providers/AuthServiceProvider.php
--- a/src/app/Providers/AuthServiceProvider.php
+++ b/src/app/Providers/AuthServiceProvider.php
@@ -16,11 +16,8 @@
/**
* Register any authentication / authorization services.
- *
- * @return void
*/
- public function boot()
+ public function boot(): void
{
- $this->registerPolicies();
}
}
diff --git a/src/app/Providers/BroadcastServiceProvider.php b/src/app/Providers/BroadcastServiceProvider.php
--- a/src/app/Providers/BroadcastServiceProvider.php
+++ b/src/app/Providers/BroadcastServiceProvider.php
@@ -9,10 +9,8 @@
{
/**
* Bootstrap any application services.
- *
- * @return void
*/
- public function boot()
+ public function boot(): void
{
Broadcast::routes();
diff --git a/src/app/Providers/EventServiceProvider.php b/src/app/Providers/EventServiceProvider.php
--- a/src/app/Providers/EventServiceProvider.php
+++ b/src/app/Providers/EventServiceProvider.php
@@ -22,20 +22,16 @@
/**
* Register any events for your application.
- *
- * @return void
*/
- public function boot()
+ public function boot(): void
{
//
}
/**
* Determine if events and listeners should be automatically discovered.
- *
- * @return bool
*/
- public function shouldDiscoverEvents()
+ public function shouldDiscoverEvents(): bool
{
return false;
}
diff --git a/src/app/Providers/RouteServiceProvider.php b/src/app/Providers/RouteServiceProvider.php
--- a/src/app/Providers/RouteServiceProvider.php
+++ b/src/app/Providers/RouteServiceProvider.php
@@ -12,10 +12,8 @@
{
/**
* Define your route model bindings, pattern filters, etc.
- *
- * @return void
*/
- public function boot()
+ public function boot(): void
{
$this->configureRateLimiting();
@@ -32,10 +30,8 @@
/**
* Configure the rate limiters for the application.
- *
- * @return void
*/
- protected function configureRateLimiting()
+ protected function configureRateLimiting(): void
{
RateLimiter::for('api', function (Request $request) {
return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip());
diff --git a/src/composer.json b/src/composer.json
--- a/src/composer.json
+++ b/src/composer.json
@@ -16,30 +16,30 @@
"require": {
"php": "^8.1",
"bacon/bacon-qr-code": "^2.0",
- "barryvdh/laravel-dompdf": "^2.0.0",
- "doctrine/dbal": "^3.3.2",
- "dyrynda/laravel-nullable-fields": "^4.2.0",
+ "barryvdh/laravel-dompdf": "^2.0.1",
+ "doctrine/dbal": "^3.6",
+ "dyrynda/laravel-nullable-fields": "^4.3.0",
"guzzlehttp/guzzle": "^7.4.1",
"kolab/net_ldap3": "dev-master",
- "laravel/framework": "^9.2",
+ "laravel/framework": "^10.15.0",
"laravel/horizon": "^5.9",
- "laravel/octane": "^1.2",
+ "laravel/octane": "^2.0",
"laravel/passport": "^11.3",
- "laravel/tinker": "^2.7",
+ "laravel/tinker": "^2.8",
"league/flysystem-aws-s3-v3": "^3.0",
"mlocati/spf-lib": "^3.1",
- "mollie/laravel-mollie": "^2.19",
+ "mollie/laravel-mollie": "^2.22",
"pear/crypt_gpg": "^1.6.6",
"predis/predis": "^2.0",
"sabre/vobject": "^4.5",
- "spatie/laravel-translatable": "^6.3",
+ "spatie/laravel-translatable": "^6.5",
"spomky-labs/otphp": "~10.0.0",
"stripe/stripe-php": "^10.7",
"lcobucci/jwt": "^5.0"
},
"require-dev": {
"code-lts/doctum": "^5.5.1",
- "laravel/dusk": "~7.5.0",
+ "laravel/dusk": "~7.8.0",
"mockery/mockery": "^1.5",
"nunomaduro/larastan": "^2.0",
"phpstan/phpstan": "^1.4",
diff --git a/src/config/app.php b/src/config/app.php
--- a/src/config/app.php
+++ b/src/config/app.php
@@ -1,5 +1,8 @@
<?php
+use Illuminate\Support\Facades\Facade;
+use Illuminate\Support\ServiceProvider;
+
return [
/*
@@ -39,7 +42,7 @@
|
*/
- 'debug' => env('APP_DEBUG', false),
+ 'debug' => (bool) env('APP_DEBUG', false),
/*
|--------------------------------------------------------------------------
@@ -165,33 +168,7 @@
|
*/
- 'providers' => [
- /*
- * Laravel Framework Service Providers...
- */
- Illuminate\Auth\AuthServiceProvider::class,
- Illuminate\Broadcasting\BroadcastServiceProvider::class,
- Illuminate\Bus\BusServiceProvider::class,
- Illuminate\Cache\CacheServiceProvider::class,
- Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
- Illuminate\Cookie\CookieServiceProvider::class,
- Illuminate\Database\DatabaseServiceProvider::class,
- Illuminate\Encryption\EncryptionServiceProvider::class,
- Illuminate\Filesystem\FilesystemServiceProvider::class,
- Illuminate\Foundation\Providers\FoundationServiceProvider::class,
- Illuminate\Hashing\HashServiceProvider::class,
- Illuminate\Mail\MailServiceProvider::class,
- Illuminate\Notifications\NotificationServiceProvider::class,
- Illuminate\Pagination\PaginationServiceProvider::class,
- Illuminate\Pipeline\PipelineServiceProvider::class,
- Illuminate\Queue\QueueServiceProvider::class,
- Illuminate\Redis\RedisServiceProvider::class,
- Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
- Illuminate\Session\SessionServiceProvider::class,
- Illuminate\Translation\TranslationServiceProvider::class,
- Illuminate\Validation\ValidationServiceProvider::class,
- Illuminate\View\ViewServiceProvider::class,
-
+ 'providers' => ServiceProvider::defaultProviders()->merge([
/*
* Application Service Providers...
*/
@@ -202,7 +179,7 @@
App\Providers\HorizonServiceProvider::class,
App\Providers\PassportServiceProvider::class,
App\Providers\RouteServiceProvider::class,
- ],
+ ])->toArray(),
/*
|--------------------------------------------------------------------------
@@ -215,7 +192,7 @@
|
*/
- 'aliases' => \Illuminate\Support\Facades\Facade::defaultAliases()->toArray(),
+ 'aliases' => Facade::defaultAliases()->toArray(),
'headers' => [
'csp' => env('APP_HEADER_CSP', ""),
diff --git a/src/config/auth.php b/src/config/auth.php
--- a/src/config/auth.php
+++ b/src/config/auth.php
@@ -31,7 +31,7 @@
| users are actually retrieved out of your database or other storage
| mechanisms used by this application to persist your user's data.
|
- | Supported: "session", "token"
+ | Supported: "session"
|
*/
@@ -85,10 +85,14 @@
| than one user table or model in the application and you want to have
| separate password reset settings based on the specific user types.
|
- | The expire time is the number of minutes that the reset token should be
+ | The expire time is the number of minutes that each reset token will be
| considered valid. This security feature keeps tokens short-lived so
| they have less time to be guessed. You may change this as needed.
|
+ | The throttle setting is the number of seconds a user must wait before
+ | generating more password reset tokens. This prevents the user from
+ | quickly generating a very large amount of password reset tokens.
+ |
*/
'passwords' => [
@@ -96,9 +100,22 @@
'provider' => 'users',
'table' => 'password_resets',
'expire' => 60,
+ 'throttle' => 60,
],
],
+ /*
+ |--------------------------------------------------------------------------
+ | Password Confirmation Timeout
+ |--------------------------------------------------------------------------
+ |
+ | Here you may define the amount of seconds before a password confirmation
+ | times out and the user is prompted to re-enter their password via the
+ | confirmation screen. By default, the timeout lasts for three hours.
+ */
+
+ 'password_timeout' => 10800,
+
/*
|--------------------------------------------------------------------------
diff --git a/src/config/broadcasting.php b/src/config/broadcasting.php
--- a/src/config/broadcasting.php
+++ b/src/config/broadcasting.php
@@ -37,7 +37,11 @@
'app_id' => env('PUSHER_APP_ID'),
'options' => [
'cluster' => env('PUSHER_APP_CLUSTER'),
- 'useTLS' => true,
+ 'host' => env('PUSHER_HOST') ?: 'api-'.env('PUSHER_APP_CLUSTER', 'mt1').'.pusher.com',
+ 'port' => env('PUSHER_PORT', 443),
+ 'scheme' => env('PUSHER_SCHEME', 'https'),
+ 'encrypted' => true,
+ 'useTLS' => env('PUSHER_SCHEME', 'https') === 'https',
],
'client_options' => [
// Guzzle client options: https://docs.guzzlephp.org/en/stable/request-options.html
diff --git a/src/config/cache.php b/src/config/cache.php
--- a/src/config/cache.php
+++ b/src/config/cache.php
@@ -12,10 +12,6 @@
| This option controls the default cache connection that gets used while
| using this caching library. This connection is used when another is
| not explicitly specified when executing a given caching function.
- |
- | Supported: "apc", "array", "database", "file",
- | "memcached", "redis", "dynamodb"
- |
*/
'default' => env('CACHE_DRIVER', 'redis'),
@@ -29,6 +25,8 @@
| well as their drivers. You may even define multiple stores for the
| same cache driver to group types of items stored in your caches.
|
+ | Supported drivers: "apc", "array", "database", "file",
+ | "memcached", "redis", "dynamodb", "octane", "null"
*/
'stores' => [
@@ -52,6 +50,7 @@
'file' => [
'driver' => 'file',
'path' => storage_path('framework/cache/data'),
+ 'lock_path' => storage_path('framework/cache/data'),
],
'memcached' => [
diff --git a/src/config/cors.php b/src/config/cors.php
new file mode 100644
--- /dev/null
+++ b/src/config/cors.php
@@ -0,0 +1,34 @@
+<?php
+
+return [
+
+ /*
+ |--------------------------------------------------------------------------
+ | Cross-Origin Resource Sharing (CORS) Configuration
+ |--------------------------------------------------------------------------
+ |
+ | Here you may configure your settings for cross-origin resource sharing
+ | or "CORS". This determines what cross-origin operations may execute
+ | in web browsers. You are free to adjust these settings as needed.
+ |
+ | To learn more: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
+ |
+ */
+
+ 'paths' => ['api/*', 'sanctum/csrf-cookie'],
+
+ 'allowed_methods' => ['*'],
+
+ 'allowed_origins' => ['*'],
+
+ 'allowed_origins_patterns' => [],
+
+ 'allowed_headers' => ['*'],
+
+ 'exposed_headers' => [],
+
+ 'max_age' => 0,
+
+ 'supports_credentials' => false,
+
+];
diff --git a/src/config/database.php b/src/config/database.php
--- a/src/config/database.php
+++ b/src/config/database.php
@@ -135,6 +135,7 @@
'default' => [
'url' => env('REDIS_URL'),
'host' => env('REDIS_HOST', '127.0.0.1'),
+ 'username' => env('REDIS_USERNAME'),
'password' => env('REDIS_PASSWORD'),
'port' => env('REDIS_PORT', 6379),
'database' => env('REDIS_DB', 0),
@@ -143,6 +144,7 @@
'cache' => [
'url' => env('REDIS_URL'),
'host' => env('REDIS_HOST', '127.0.0.1'),
+ 'username' => env('REDIS_USERNAME'),
'password' => env('REDIS_PASSWORD'),
'port' => env('REDIS_PORT', 6379),
'database' => env('REDIS_CACHE_DB', 1),
diff --git a/src/config/filesystems.php b/src/config/filesystems.php
--- a/src/config/filesystems.php
+++ b/src/config/filesystems.php
@@ -33,6 +33,7 @@
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
+ 'throw' => false,
],
'files' => [
@@ -50,6 +51,7 @@
'root' => storage_path('app/public'),
'url' => env('APP_URL') . '/storage',
'visibility' => 'public',
+ 'throw' => false,
],
'minio' => [
@@ -71,6 +73,7 @@
'url' => env('AWS_URL'),
'endpoint' => env('AWS_ENDPOINT'),
'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false),
+ 'throw' => false,
],
],
diff --git a/src/config/logging.php b/src/config/logging.php
--- a/src/config/logging.php
+++ b/src/config/logging.php
@@ -30,7 +30,10 @@
|
*/
- 'deprecations' => env('LOG_DEPRECATIONS_CHANNEL', 'null'),
+ 'deprecations' => [
+ 'channel' => env('LOG_DEPRECATIONS_CHANNEL', 'null'),
+ 'trace' => false,
+ ],
/*
|--------------------------------------------------------------------------
@@ -52,12 +55,14 @@
'driver' => 'stack',
'channels' => ['daily'],
'ignore_exceptions' => false,
+ 'replace_placeholders' => true,
],
'single' => [
'driver' => 'single',
'path' => storage_path('logs/laravel.log'),
'level' => env('LOG_LEVEL', 'debug'),
+ 'replace_placeholders' => true,
],
'daily' => [
@@ -65,6 +70,7 @@
'path' => storage_path('logs/laravel.log'),
'level' => env('LOG_LEVEL', 'debug'),
'days' => 14,
+ 'replace_placeholders' => true,
],
'slack' => [
@@ -73,6 +79,7 @@
'username' => 'Laravel Log',
'emoji' => ':boom:',
'level' => env('LOG_LEVEL', 'critical'),
+ 'replace_placeholders' => true,
],
'papertrail' => [
@@ -109,11 +116,14 @@
'syslog' => [
'driver' => 'syslog',
'level' => env('LOG_LEVEL', 'debug'),
+ 'facility' => LOG_USER,
+ 'replace_placeholders' => true,
],
'errorlog' => [
'driver' => 'errorlog',
'level' => env('LOG_LEVEL', 'debug'),
+ 'replace_placeholders' => true,
],
'null' => [
diff --git a/src/config/mail.php b/src/config/mail.php
--- a/src/config/mail.php
+++ b/src/config/mail.php
@@ -28,7 +28,7 @@
| sending an e-mail. You will specify which one you are using for your
| mailers below. You are free to add additional mailers as required.
|
- | Supported: "smtp", "sendmail", "mailgun", "ses",
+ | Supported: "smtp", "sendmail", "mailgun", "ses", "ses-v2",
| "postmark", "log", "array", "failover"
|
*/
@@ -36,12 +36,14 @@
'mailers' => [
'smtp' => [
'transport' => 'smtp',
+ 'url' => env('MAIL_URL'),
'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
'port' => env('MAIL_PORT', 587),
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'timeout' => null,
+ 'local_domain' => env('MAIL_EHLO_DOMAIN'),
],
'ses' => [
diff --git a/src/config/queue.php b/src/config/queue.php
--- a/src/config/queue.php
+++ b/src/config/queue.php
@@ -73,6 +73,24 @@
],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Job Batching
+ |--------------------------------------------------------------------------
+ |
+ | The following options configure the database and table that store job
+ | batching information. These options can be updated to any database
+ | connection and table which has been defined by your application.
+ |
+ */
+
+ 'batching' => [
+ 'database' => env('DB_CONNECTION', 'mysql'),
+ 'table' => 'job_batches',
+ ],
+
+
/*
|--------------------------------------------------------------------------
| Failed Queue Jobs
diff --git a/src/tests/Browser/Admin/UserTest.php b/src/tests/Browser/Admin/UserTest.php
--- a/src/tests/Browser/Admin/UserTest.php
+++ b/src/tests/Browser/Admin/UserTest.php
@@ -86,8 +86,11 @@
{
$this->browse(function (Browser $browser) {
$jack = $this->getTestUser('jack@kolab.org');
- $jack->setSetting('limit_geo', null);
- $jack->setSetting('guam_enabled', null);
+ $jack->setSettings([
+ 'limit_geo' => null,
+ 'organization' => null,
+ 'guam_enabled' => null,
+ ]);
$page = new UserPage($jack->id);
diff --git a/src/tests/Browser/Reseller/UserTest.php b/src/tests/Browser/Reseller/UserTest.php
--- a/src/tests/Browser/Reseller/UserTest.php
+++ b/src/tests/Browser/Reseller/UserTest.php
@@ -83,7 +83,10 @@
{
$this->browse(function (Browser $browser) {
$jack = $this->getTestUser('jack@kolab.org');
- $jack->setSetting('limit_geo', null);
+ $jack->setSettings([
+ 'limit_geo' => null,
+ 'organization' => null,
+ ]);
$page = new UserPage($jack->id);
$browser->visit(new Home())
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Mon, Mar 30, 12:22 PM (5 d, 5 h ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
6d/fd/522dd9a0e5b13623d155071931f3
Default Alt Text
D4412.1774873333.diff (20 KB)
Attached To
Mode
D4412: Laravel v10
Attached
Detach File
Event Timeline