From 9a10ff472710fac91c2ca77a5b4029f1e3ddd084 Mon Sep 17 00:00:00 2001 From: Jonathan van Rij Date: Mon, 16 Feb 2026 12:16:53 +0100 Subject: [PATCH] adds the role and I'll go ahead and link and socialite --- .../Controllers/Auth/SocialiteController.php | 1 + app/Http/Middleware/HandleInertiaRequests.php | 2 + app/Models/User.php | 1 + app/Providers/AppServiceProvider.php | 10 +- composer.json | 5 +- composer.lock | 129 +++++++++++++++++- database/factories/UserFactory.php | 8 +- .../0001_01_01_000000_create_users_table.php | 3 + database/seeders/JonathanSeeder.php | 2 + resources/js/Components/AppButton.vue | 10 +- resources/js/Pages/Landing.vue | 34 ++++- routes/web.php | 22 +-- 12 files changed, 205 insertions(+), 22 deletions(-) diff --git a/app/Http/Controllers/Auth/SocialiteController.php b/app/Http/Controllers/Auth/SocialiteController.php index 8b3365a..e99c894 100644 --- a/app/Http/Controllers/Auth/SocialiteController.php +++ b/app/Http/Controllers/Auth/SocialiteController.php @@ -38,6 +38,7 @@ public function callback(): RedirectResponse 'photo' => $azureUser->getAvatar(), 'job_title' => Arr::get($azureUser->user, 'jobTitle'), 'department' => Arr::get($azureUser->user, 'department'), + 'company_name' => Arr::get($azureUser->user, 'companyName'), 'phone' => Arr::get($azureUser->user, 'mobilePhone', Arr::get($azureUser->user, 'businessPhones.0')), ] ); diff --git a/app/Http/Middleware/HandleInertiaRequests.php b/app/Http/Middleware/HandleInertiaRequests.php index 897517d..1da8b62 100644 --- a/app/Http/Middleware/HandleInertiaRequests.php +++ b/app/Http/Middleware/HandleInertiaRequests.php @@ -58,6 +58,8 @@ private function getAuthenticatedUser(): ?array 'id' => $user->id, 'name' => $user->name, 'email' => $user->email, + 'job_title' => $user->job_title, + 'company_name' => $user->company_name, ]; } diff --git a/app/Models/User.php b/app/Models/User.php index 73fb91e..4b936a6 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -28,6 +28,7 @@ final class User extends Authenticatable 'photo', 'job_title', 'department', + 'company_name', 'phone', 'role_id', ]; diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 452e6b6..ce9edfb 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -1,10 +1,15 @@ */ -class UserFactory extends Factory +final class UserFactory extends Factory { /** * The current password being used by the factory. @@ -27,8 +29,10 @@ public function definition(): array 'name' => fake()->name(), 'email' => fake()->unique()->safeEmail(), 'email_verified_at' => now(), - 'password' => static::$password ??= Hash::make('password'), + 'password' => self::$password ??= Hash::make('password'), 'remember_token' => Str::random(10), + 'job_title' => fake()->jobTitle(), + 'company_name' => fake()->company(), ]; } diff --git a/database/migrations/0001_01_01_000000_create_users_table.php b/database/migrations/0001_01_01_000000_create_users_table.php index 5b09d72..28fa7b4 100644 --- a/database/migrations/0001_01_01_000000_create_users_table.php +++ b/database/migrations/0001_01_01_000000_create_users_table.php @@ -1,5 +1,7 @@ string('photo')->nullable(); $table->string('job_title')->nullable(); $table->string('department')->nullable(); + $table->string('company_name')->nullable(); $table->string('phone')->nullable(); $table->timestamp('email_verified_at')->nullable(); $table->string('password')->nullable(); diff --git a/database/seeders/JonathanSeeder.php b/database/seeders/JonathanSeeder.php index a929074..53ae341 100644 --- a/database/seeders/JonathanSeeder.php +++ b/database/seeders/JonathanSeeder.php @@ -23,6 +23,8 @@ public function run(): void 'password' => bcrypt('secret'), 'email_verified_at' => now(), 'role_id' => $adminRole->id, + 'job_title' => 'Senior Developer', + 'company_name' => 'Baker Tilly', ]); } } diff --git a/resources/js/Components/AppButton.vue b/resources/js/Components/AppButton.vue index b5854cb..d005153 100644 --- a/resources/js/Components/AppButton.vue +++ b/resources/js/Components/AppButton.vue @@ -18,6 +18,10 @@ const props = defineProps({ type: String, default: undefined, }, + external: { + type: Boolean, + default: false, + }, disabled: { type: Boolean, default: false, @@ -32,7 +36,11 @@ const emit = defineEmits(['click']) const isDisabled = computed(() => props.disabled || props.loading) -const component = computed(() => props.href ? Link : 'button') +const component = computed(() => { + if (props.href && props.external) return 'a' + if (props.href) return Link + return 'button' +}) const buttonClasses = computed(() => { const classes = [ diff --git a/resources/js/Pages/Landing.vue b/resources/js/Pages/Landing.vue index b90f62f..8015840 100644 --- a/resources/js/Pages/Landing.vue +++ b/resources/js/Pages/Landing.vue @@ -1,10 +1,34 @@