From b6fe4cea641309a4fda2c3a74e958408c87c4d3a Mon Sep 17 00:00:00 2001 From: Rias Date: Thu, 4 Jan 2024 09:26:53 +0100 Subject: [PATCH 1/6] Remove apple login (#286) * Remove apple login * Fix styling --------- Co-authored-by: riasvdv --- README.md | 39 -------- .../Controllers/AppleSocialiteController.php | 74 --------------- app/Http/Controllers/ProfileController.php | 11 --- app/Providers/AuthServiceProvider.php | 9 -- .../Socialite/SignInWithAppleProvider.php | 89 ------------------- config/services.php | 6 -- ...5234_remove_apple_id_column_from_users.php | 14 +++ resources/views/auth/appleCallback.blade.php | 22 ----- resources/views/auth/login.blade.php | 10 --- .../views/front/profile/profile.blade.php | 18 ---- routes/web.php | 6 -- 11 files changed, 14 insertions(+), 284 deletions(-) delete mode 100644 app/Http/Controllers/AppleSocialiteController.php delete mode 100644 app/Support/Socialite/SignInWithAppleProvider.php create mode 100644 database/migrations/2024_01_03_165234_remove_apple_id_column_from_users.php delete mode 100644 resources/views/auth/appleCallback.blade.php diff --git a/README.md b/README.md index 9f3f3d75e..b89d804c9 100644 --- a/README.md +++ b/README.md @@ -28,45 +28,6 @@ If you'd like to reuse or repost something, feel free to hit us up at info@spati This project and the Laravel framework are open-sourced software licensed under the [MIT license](http://opensource.org/licenses/MIT). -## Apple sign-in - -Every 6 months, the token for Sign-in with Apple expires, this can be renewed using the "Spatie apple login - private key" in our team's 1Password vault and the following ruby script: - -```ruby -require 'jwt' - -key_file = 'key.txt' -team_id = '' # Found in the top right when signed in on the Apple developer site -client_id = 'be.spatie.website' -key_id = '' # The key ID, found here https://developer.apple.com/account/resources/authkeys/list - -ecdsa_key = OpenSSL::PKey::EC.new IO.read key_file - -headers = { -'kid' => key_id -} - -claims = { - 'iss' => team_id, - 'iat' => Time.now.to_i, - 'exp' => Time.now.to_i + 86400*180, - 'aud' => 'https://appleid.apple.com', - 'sub' => client_id, -} - -token = JWT.encode claims, ecdsa_key, 'ES256', headers - -puts token -``` - -Then execute it using - -```shell -ruby client_secret.rb -``` - -Which gives you a new token that is valid for 6 months. - ## GeoIP lookup We use Maxmind's geo IP dataset to provide PPP based on IP location. This is built using the excellent [laravel-geoip](https://lyften.com/projects/laravel-geoip) package. diff --git a/app/Http/Controllers/AppleSocialiteController.php b/app/Http/Controllers/AppleSocialiteController.php deleted file mode 100644 index ccc894117..000000000 --- a/app/Http/Controllers/AppleSocialiteController.php +++ /dev/null @@ -1,74 +0,0 @@ -reflash(); - - if (auth()->check()) { - /* - * If somebody is already logged in, the user wants to - * connect their Apple account. Remember who's logged in. - */ - session()->put('auth-user-id', auth()->user()->id); - } - - return Socialite::driver('apple')->redirect(); - } - - public function callback(): View - { - session()->replace(json_decode(request('state'), true)); - - $appleUser = Socialite::driver('apple')->user(); - - $user = $this->retrieveUser($appleUser); - - $user->update([ - 'apple_id' => $appleUser->getId(), - ]); - - auth()->login($user, true); - - flash()->success('You have been logged in'); - - return view('auth.appleCallback'); - } - - protected function retrieveUser(SocialiteUser $appleUser): User - { - if (session('auth-user-id')) { - /* - * If there already was a local user created for the email used - * on Apple, then let's use that local user - */ - return User::find(session('auth-user-id')); - } - - /* - * Somebody tries to login via Apple that already - * has an account with this email. - * We'll link this Apple profile to this account. - */ - if ($appleUser->getEmail() && $user = User::where('email', $appleUser->getEmail())->first()) { - return $user; - } - - return User::firstOrCreate([ - 'apple_id' => $appleUser->getId(), - ], [ - 'password' => bcrypt(Str::random()), - 'email' => $appleUser->getEmail(), - 'name' => $appleUser->getName() ?? $appleUser->getEmail(), - ]); - } -} diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index c8265567c..d3d6cc12e 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -45,17 +45,6 @@ public function disconnect(): RedirectResponse return redirect()->route('profile'); } - public function disconnectApple(): RedirectResponse - { - auth()->user()->update([ - 'apple_id' => null, - ]); - - flash()->success('Apple account disconnected.'); - - return redirect()->route('profile'); - } - public function delete(): RedirectResponse { /** @var \App\Models\User $user */ diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php index 17f254b83..c1b59e589 100644 --- a/app/Providers/AuthServiceProvider.php +++ b/app/Providers/AuthServiceProvider.php @@ -3,11 +3,9 @@ namespace App\Providers; use App\Domain\Shop\Models\License; -use App\Support\Socialite\SignInWithAppleProvider; use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; -use Laravel\Socialite\Facades\Socialite; class AuthServiceProvider extends ServiceProvider { @@ -30,12 +28,5 @@ public function boot(): void return $license; }); - - Socialite::extend('apple', function () { - return Socialite::buildProvider( - SignInWithAppleProvider::class, - config('services.apple'), - ); - }); } } diff --git a/app/Support/Socialite/SignInWithAppleProvider.php b/app/Support/Socialite/SignInWithAppleProvider.php deleted file mode 100644 index fa18cc4ad..000000000 --- a/app/Support/Socialite/SignInWithAppleProvider.php +++ /dev/null @@ -1,89 +0,0 @@ -buildAuthUrlFromBase('https://appleid.apple.com/auth/authorize', $state); - } - - protected function getState() - { - return json_encode(Arr::except(session()->all(), ['_flash', '_previous'])); - } - - protected function getCodeFields($state = null) - { - return array_merge([ - 'client_id' => $this->clientId, - 'redirect_uri' => $this->redirectUrl, - 'scope' => $this->formatScopes($this->getScopes(), $this->scopeSeparator), - 'response_type' => 'code', - 'response_mode' => 'form_post', - ], $this->usesState() ? ['state' => $state] : [], $this->parameters); - } - - protected function getTokenUrl() - { - return 'https://appleid.apple.com/auth/token'; - } - - public function getAccessToken($code) - { - $response = $this->getHttpClient()->post($this->getTokenUrl(), [ - 'headers' => [ - 'Authorization' => 'Basic '.base64_encode("{$this->clientId}:{$this->clientSecret}"), - ], - 'body' => $this->getTokenFields($code), - ]); - - return json_decode($response->getBody()->getContents(), true)['access_token']; - } - - protected function getUserByToken($token) - { - $claims = explode('.', $token)[1]; - - return json_decode(base64_decode($claims), true); - } - - public function user() - { - $response = $this->getAccessTokenResponse($this->getCode()); - - $user = $this->mapUserToObject( - $this->getUserByToken(Arr::get($response, 'id_token')) - ); - - return $user - ->setToken(Arr::get($response, 'id_token')) - ->setRefreshToken(Arr::get($response, 'refresh_token')) - ->setExpiresIn(Arr::get($response, 'expires_in')); - } - - protected function mapUserToObject(array $user) - { - $userDetails = request()->json('user'); - - if (Arr::has($userDetails, 'name')) { - $fullName = implode(' ', $user['name'] = $userDetails['name']); - } - - return (new User())->setRaw($user)->map([ - 'id' => $user['sub'], - 'name' => $fullName ?? null, - 'email' => $user['email'] ?? null, - ]); - } -} diff --git a/config/services.php b/config/services.php index c5fc7ab1f..839d2d884 100644 --- a/config/services.php +++ b/config/services.php @@ -78,12 +78,6 @@ 'package_training' => env('PROMO_CODE_PACKAGE_TRAINING'), ], - 'apple' => [ - 'redirect' => env('APPLE_CALLBACK_URL'), - 'client_id' => env('APPLE_ID'), - 'client_secret' => env('APPLE_SECRET'), - ], - 'mailcoach' => [ 'token' => env('MAILCOACH_TOKEN'), ], diff --git a/database/migrations/2024_01_03_165234_remove_apple_id_column_from_users.php b/database/migrations/2024_01_03_165234_remove_apple_id_column_from_users.php new file mode 100644 index 000000000..925efe6a3 --- /dev/null +++ b/database/migrations/2024_01_03_165234_remove_apple_id_column_from_users.php @@ -0,0 +1,14 @@ +dropColumn('apple_id'); + }); + } +}; diff --git a/resources/views/auth/appleCallback.blade.php b/resources/views/auth/appleCallback.blade.php deleted file mode 100644 index f60cbdaf4..000000000 --- a/resources/views/auth/appleCallback.blade.php +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - Logged in using Apple! - - -

Redirecting...

- - - diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php index bb415500f..ef722daff 100644 --- a/resources/views/auth/login.blade.php +++ b/resources/views/auth/login.blade.php @@ -44,16 +44,6 @@ function showGitHubAuthWindow() { -
- - - - {{ svg('apple') }} - - Sign-in with Apple - - -

diff --git a/resources/views/front/profile/profile.blade.php b/resources/views/front/profile/profile.blade.php index c523e766e..e07a40f37 100644 --- a/resources/views/front/profile/profile.blade.php +++ b/resources/views/front/profile/profile.blade.php @@ -29,24 +29,6 @@

Log in without password and check your sponsor status.

@endif -
- @if (auth()->user()->apple_id) - - - {{ svg('apple') }} - - Disconnect from Sign-in with Apple - - @else - - - {{ svg('apple') }} - - Connect to Sign-in with Apple - -

Log in without password.

- @endif -
diff --git a/routes/web.php b/routes/web.php index 9a6d8025d..9dc54b0a7 100644 --- a/routes/web.php +++ b/routes/web.php @@ -7,7 +7,6 @@ use App\Http\Auth\Controllers\ResetPasswordController; use App\Http\Auth\Controllers\UpdatePasswordController; use App\Http\Controllers\AfterPaddleBundleSaleController; -use App\Http\Controllers\AppleSocialiteController; use App\Http\Controllers\BlogsController; use App\Http\Controllers\BundlesController; use App\Http\Controllers\DocsController; @@ -15,7 +14,6 @@ use App\Http\Controllers\DownloadPurchasableController; use App\Http\Controllers\DownloadRayController; use App\Http\Controllers\MusicController; -use App\Http\Controllers\ReadablePhpController; use App\Http\Controllers\ShowReleaseNotesController; use App\Http\Controllers\GitHubSocialiteController; use App\Http\Controllers\GuidelinesController; @@ -122,7 +120,6 @@ Route::get('/', [ProfileController::class, 'show'])->name('profile'); Route::put('/', [ProfileController::class, 'update'])->name('profile'); Route::get('disconnect', [ProfileController::class, 'disconnect'])->name('github-disconnect'); - Route::get('disconnect-apple', [ProfileController::class, 'disconnectApple'])->name('apple-disconnect'); Route::delete('/', [ProfileController::class, 'delete'])->name('profile'); Route::get('password', [UpdatePasswordController::class, 'show'])->name('profile.password'); @@ -146,9 +143,6 @@ Route::get('login/github', [GitHubSocialiteController::class, 'redirect'])->name('github-login'); Route::get('login/github/callback', [GitHubSocialiteController::class, 'callback']); -Route::get('login/apple', [AppleSocialiteController::class, 'redirect'])->name('apple-login'); -Route::post('login/apple', [AppleSocialiteController::class, 'callback']); - Route::post('logout', [LogoutController::class, 'logout'])->name('logout'); Route::get('/courses', [CoursesController::class, 'index'])->name('courses.index'); From 60251f8031e503479a070848d4645477c6b2bc0e Mon Sep 17 00:00:00 2001 From: Rias Date: Fri, 5 Jan 2024 10:22:00 +0100 Subject: [PATCH 2/6] Archive js developer --- .../vacancies/{ => archive}/javascript-developer.blade.php | 0 .../views/front/pages/vacancies/partials/list.blade.php | 5 ----- 2 files changed, 5 deletions(-) rename resources/views/front/pages/vacancies/{ => archive}/javascript-developer.blade.php (100%) diff --git a/resources/views/front/pages/vacancies/javascript-developer.blade.php b/resources/views/front/pages/vacancies/archive/javascript-developer.blade.php similarity index 100% rename from resources/views/front/pages/vacancies/javascript-developer.blade.php rename to resources/views/front/pages/vacancies/archive/javascript-developer.blade.php diff --git a/resources/views/front/pages/vacancies/partials/list.blade.php b/resources/views/front/pages/vacancies/partials/list.blade.php index 748de8ca8..8f2ffcc42 100644 --- a/resources/views/front/pages/vacancies/partials/list.blade.php +++ b/resources/views/front/pages/vacancies/partials/list.blade.php @@ -3,11 +3,6 @@ Why don't you squeeze yourself in?

-
- JavaScript Developer -
Full-time / Partially remote / Dutch
-
-
Spontaneous Application
Full-time / Partially remote
From 13704a7966cdb201eb756e43aa68ae650a494ff3 Mon Sep 17 00:00:00 2001 From: Niels Vanpachtenbeke <10651054+Nielsvanpach@users.noreply.github.com> Date: Thu, 11 Jan 2024 17:14:25 +0100 Subject: [PATCH 3/6] bug fix after work options if first of the next month is a friday, it was included in the options --- app/Console/Commands/AfterworkCommand.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Console/Commands/AfterworkCommand.php b/app/Console/Commands/AfterworkCommand.php index fbc0b441f..ad232d9a6 100644 --- a/app/Console/Commands/AfterworkCommand.php +++ b/app/Console/Commands/AfterworkCommand.php @@ -56,7 +56,7 @@ protected function getDatesForWeekdayInMonth(string $dayName): CarbonPeriod return new CarbonPeriod( CarbonImmutable::parse("first {$dayName} of this month"), CarbonInterval::week(), - CarbonImmutable::parse("first {$dayName} of next month") + CarbonImmutable::parse("first {$dayName} of next month")->subDay(), ); } From d7dcfc6c213df77c57549651096272109196033e Mon Sep 17 00:00:00 2001 From: Niels Vanpachtenbeke <10651054+Nielsvanpach@users.noreply.github.com> Date: Wed, 17 Jan 2024 10:01:24 +0100 Subject: [PATCH 4/6] filter public holidays in belgium --- app/Console/Commands/AfterworkCommand.php | 9 +++- composer.json | 1 + composer.lock | 62 ++++++++++++++++++++++- 3 files changed, 70 insertions(+), 2 deletions(-) diff --git a/app/Console/Commands/AfterworkCommand.php b/app/Console/Commands/AfterworkCommand.php index ad232d9a6..d87446fce 100644 --- a/app/Console/Commands/AfterworkCommand.php +++ b/app/Console/Commands/AfterworkCommand.php @@ -6,6 +6,7 @@ use Carbon\CarbonInterval; use Carbon\CarbonPeriod; use Illuminate\Console\Command; +use Spatie\Holidays\Holidays; use Spatie\SlackAlerts\Facades\SlackAlert; class AfterworkCommand extends Command @@ -20,7 +21,9 @@ public function handle(): void ->map(fn (string $option, int $index) => $this->addEmoji($option, $index)) ->implode("\n"); - SlackAlert::message("Who is in for an afterwork drink? :beer: :cup_with_straw:\n{$options}"); + $this->info("Poll options:\n{$options}"); + + SlackAlert::message("Who is in for an afterwork drink? :beer:\n{$options}"); $this->info('Poll posted to Slack'); } @@ -33,6 +36,10 @@ protected function generatePollOptions(): array $datesInMonth = $this->getDatesForWeekdayInMonth($weekday); foreach ($datesInMonth as $date) { + if (Holidays::new()->isHoliday($date, 'be')) { + continue; + } + $options[$date->day] = "{$date->shortDayName} {$date->day}/{$date->month}"; } } diff --git a/composer.json b/composer.json index 6abdd2943..3cfc78e0e 100644 --- a/composer.json +++ b/composer.json @@ -52,6 +52,7 @@ "spatie/crypto": "^2.0.1", "spatie/eloquent-sortable": "^4.0.1", "spatie/fork": "^1.1.2", + "spatie/holidays": "^0.0.1", "spatie/laravel-artisan-dispatchable": "^1.3", "spatie/laravel-backup": "^8.1.5", "spatie/laravel-comments": "^1.3", diff --git a/composer.lock b/composer.lock index eaf4b93ae..97f75b52c 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "a56ae13d9974412021e58efcb9a742e3", + "content-hash": "1ecad145dd9aca940aa7f4b8c322a9c7", "packages": [ { "name": "abraham/twitteroauth", @@ -8970,6 +8970,66 @@ ], "time": "2023-11-23T15:12:48+00:00" }, + { + "name": "spatie/holidays", + "version": "0.0.1", + "source": { + "type": "git", + "url": "https://github.com/spatie/holidays.git", + "reference": "5fc21902560f2ab50d995db82b8f836906de2e30" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/holidays/zipball/5fc21902560f2ab50d995db82b8f836906de2e30", + "reference": "5fc21902560f2ab50d995db82b8f836906de2e30", + "shasum": "" + }, + "require": { + "ext-calendar": "*", + "nesbot/carbon": "^2.72", + "php": "^8.1" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.21.1", + "pestphp/pest": "^2.15", + "phpstan/phpstan": "^1.10", + "spatie/ray": "^1.28" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\Holidays\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Niels Vanpachtenbeke", + "email": "freek@spatie.be", + "role": "Developer" + } + ], + "description": "Calculate public holidays", + "homepage": "https://github.com/spatie/holidays", + "keywords": [ + "holidays", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/holidays/issues", + "source": "https://github.com/spatie/holidays/tree/0.0.1" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2024-01-15T10:55:39+00:00" + }, { "name": "spatie/ignition", "version": "1.11.3", From 7cd2fcc51fe6326a5ac703caaeee43813119d3d8 Mon Sep 17 00:00:00 2001 From: Niels Vanpachtenbeke <10651054+Nielsvanpach@users.noreply.github.com> Date: Wed, 17 Jan 2024 15:54:46 +0100 Subject: [PATCH 5/6] use latest version of spatie/holidays --- app/Console/Commands/AfterworkCommand.php | 2 +- composer.json | 2 +- composer.lock | 101 +++++++++++----------- 3 files changed, 54 insertions(+), 51 deletions(-) diff --git a/app/Console/Commands/AfterworkCommand.php b/app/Console/Commands/AfterworkCommand.php index d87446fce..ddff18611 100644 --- a/app/Console/Commands/AfterworkCommand.php +++ b/app/Console/Commands/AfterworkCommand.php @@ -36,7 +36,7 @@ protected function generatePollOptions(): array $datesInMonth = $this->getDatesForWeekdayInMonth($weekday); foreach ($datesInMonth as $date) { - if (Holidays::new()->isHoliday($date, 'be')) { + if (Holidays::for('be')->isHoliday($date)) { continue; } diff --git a/composer.json b/composer.json index 3cfc78e0e..20e3d3c3a 100644 --- a/composer.json +++ b/composer.json @@ -52,7 +52,7 @@ "spatie/crypto": "^2.0.1", "spatie/eloquent-sortable": "^4.0.1", "spatie/fork": "^1.1.2", - "spatie/holidays": "^0.0.1", + "spatie/holidays": "^1.0", "spatie/laravel-artisan-dispatchable": "^1.3", "spatie/laravel-backup": "^8.1.5", "spatie/laravel-comments": "^1.3", diff --git a/composer.lock b/composer.lock index 97f75b52c..d8065144f 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "1ecad145dd9aca940aa7f4b8c322a9c7", + "content-hash": "8748dfa42b78437cb716368b0a628e9b", "packages": [ { "name": "abraham/twitteroauth", @@ -542,16 +542,16 @@ }, { "name": "carbonphp/carbon-doctrine-types", - "version": "2.0.0", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/CarbonPHP/carbon-doctrine-types.git", - "reference": "67a77972b9f398ae7068dabacc39c08aeee170d5" + "reference": "99f76ffa36cce3b70a4a6abce41dba15ca2e84cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/67a77972b9f398ae7068dabacc39c08aeee170d5", - "reference": "67a77972b9f398ae7068dabacc39c08aeee170d5", + "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/99f76ffa36cce3b70a4a6abce41dba15ca2e84cb", + "reference": "99f76ffa36cce3b70a4a6abce41dba15ca2e84cb", "shasum": "" }, "require": { @@ -591,7 +591,7 @@ ], "support": { "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues", - "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/2.0.0" + "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/2.1.0" }, "funding": [ { @@ -607,7 +607,7 @@ "type": "tidelift" } ], - "time": "2023-10-01T14:29:01+00:00" + "time": "2023-12-11T17:09:12+00:00" }, { "name": "clue/stream-filter", @@ -5663,16 +5663,16 @@ }, { "name": "nesbot/carbon", - "version": "2.72.0", + "version": "2.72.1", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "a6885fcbad2ec4360b0e200ee0da7d9b7c90786b" + "reference": "2b3b3db0a2d0556a177392ff1a3bf5608fa09f78" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/a6885fcbad2ec4360b0e200ee0da7d9b7c90786b", - "reference": "a6885fcbad2ec4360b0e200ee0da7d9b7c90786b", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/2b3b3db0a2d0556a177392ff1a3bf5608fa09f78", + "reference": "2b3b3db0a2d0556a177392ff1a3bf5608fa09f78", "shasum": "" }, "require": { @@ -5766,7 +5766,7 @@ "type": "tidelift" } ], - "time": "2023-11-28T10:13:25+00:00" + "time": "2023-12-08T23:47:49+00:00" }, { "name": "nette/schema", @@ -8972,28 +8972,27 @@ }, { "name": "spatie/holidays", - "version": "0.0.1", + "version": "1.0.1", "source": { "type": "git", "url": "https://github.com/spatie/holidays.git", - "reference": "5fc21902560f2ab50d995db82b8f836906de2e30" + "reference": "1024aa680754129dccc7cdb10a25926c8e0ddcdf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/holidays/zipball/5fc21902560f2ab50d995db82b8f836906de2e30", - "reference": "5fc21902560f2ab50d995db82b8f836906de2e30", + "url": "https://api.github.com/repos/spatie/holidays/zipball/1024aa680754129dccc7cdb10a25926c8e0ddcdf", + "reference": "1024aa680754129dccc7cdb10a25926c8e0ddcdf", "shasum": "" }, "require": { "ext-calendar": "*", - "nesbot/carbon": "^2.72", + "nesbot/carbon": "^2.72.1", "php": "^8.1" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.21.1", - "pestphp/pest": "^2.15", - "phpstan/phpstan": "^1.10", - "spatie/ray": "^1.28" + "pestphp/pest": "^2.31", + "phpstan/phpstan": "^1.10.56", + "spatie/ray": "^1.40.1" }, "type": "library", "autoload": { @@ -9008,6 +9007,11 @@ "authors": [ { "name": "Niels Vanpachtenbeke", + "email": "niels@spatie.be", + "role": "Developer" + }, + { + "name": "Freek Van der Herten", "email": "freek@spatie.be", "role": "Developer" } @@ -9020,7 +9024,7 @@ ], "support": { "issues": "https://github.com/spatie/holidays/issues", - "source": "https://github.com/spatie/holidays/tree/0.0.1" + "source": "https://github.com/spatie/holidays/tree/1.0.1" }, "funding": [ { @@ -9028,7 +9032,7 @@ "type": "github" } ], - "time": "2024-01-15T10:55:39+00:00" + "time": "2024-01-17T13:41:33+00:00" }, { "name": "spatie/ignition", @@ -15109,33 +15113,29 @@ }, { "name": "symfony/service-contracts", - "version": "v2.5.2", + "version": "v3.4.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" + "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", - "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/fe07cbc8d837f60caf7018068e350cc5163681a0", + "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/container": "^1.1", - "symfony/deprecation-contracts": "^2.1|^3" + "php": ">=8.1", + "psr/container": "^1.1|^2.0" }, "conflict": { "ext-psr": "<1.1|>=2" }, - "suggest": { - "symfony/service-implementation": "" - }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -15145,7 +15145,10 @@ "autoload": { "psr-4": { "Symfony\\Contracts\\Service\\": "" - } + }, + "exclude-from-classmap": [ + "/Test/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -15172,7 +15175,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/service-contracts/tree/v3.4.1" }, "funding": [ { @@ -15188,7 +15191,7 @@ "type": "tidelift" } ], - "time": "2022-05-30T19:17:29+00:00" + "time": "2023-12-26T14:02:43+00:00" }, { "name": "symfony/stopwatch", @@ -15340,16 +15343,16 @@ }, { "name": "symfony/translation", - "version": "v6.4.0", + "version": "v6.4.2", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "b1035dbc2a344b21f8fa8ac451c7ecec4ea45f37" + "reference": "a2ab2ec1a462e53016de8e8d5e8912bfd62ea681" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/b1035dbc2a344b21f8fa8ac451c7ecec4ea45f37", - "reference": "b1035dbc2a344b21f8fa8ac451c7ecec4ea45f37", + "url": "https://api.github.com/repos/symfony/translation/zipball/a2ab2ec1a462e53016de8e8d5e8912bfd62ea681", + "reference": "a2ab2ec1a462e53016de8e8d5e8912bfd62ea681", "shasum": "" }, "require": { @@ -15415,7 +15418,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.4.0" + "source": "https://github.com/symfony/translation/tree/v6.4.2" }, "funding": [ { @@ -15431,20 +15434,20 @@ "type": "tidelift" } ], - "time": "2023-11-29T08:14:36+00:00" + "time": "2023-12-18T09:25:29+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.4.0", + "version": "v3.4.1", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "dee0c6e5b4c07ce851b462530088e64b255ac9c5" + "reference": "06450585bf65e978026bda220cdebca3f867fde7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/dee0c6e5b4c07ce851b462530088e64b255ac9c5", - "reference": "dee0c6e5b4c07ce851b462530088e64b255ac9c5", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/06450585bf65e978026bda220cdebca3f867fde7", + "reference": "06450585bf65e978026bda220cdebca3f867fde7", "shasum": "" }, "require": { @@ -15493,7 +15496,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.4.0" + "source": "https://github.com/symfony/translation-contracts/tree/v3.4.1" }, "funding": [ { @@ -15509,7 +15512,7 @@ "type": "tidelift" } ], - "time": "2023-07-25T15:08:44+00:00" + "time": "2023-12-26T14:02:43+00:00" }, { "name": "symfony/uid", From 1a443d6f087d75b26715f9a353da9c3ab94e9669 Mon Sep 17 00:00:00 2001 From: Rias Date: Tue, 23 Jan 2024 10:51:55 +0100 Subject: [PATCH 6/6] Remove hiring banner --- resources/views/front/pages/home/partials/news.blade.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/resources/views/front/pages/home/partials/news.blade.php b/resources/views/front/pages/home/partials/news.blade.php index e5c40831c..236b860d3 100644 --- a/resources/views/front/pages/home/partials/news.blade.php +++ b/resources/views/front/pages/home/partials/news.blade.php @@ -1,4 +1,5 @@
+ {{-- + --}}