diff --git a/.env.example b/.env.example
index dd79c63..27e7a64 100644
--- a/.env.example
+++ b/.env.example
@@ -2,7 +2,7 @@ APP_NAME="CTS Presenter"
APP_ENV=local
APP_KEY=
APP_DEBUG=true
-APP_URL=http://localhost:8000
+APP_URL=http://cts-work.test
# Application Locale (German)
APP_LOCALE=de
@@ -74,9 +74,13 @@ CTS_API_TOKEN=CHANGEME
CHURCHTOOLS_URL=https://CHANGEME.church.tools
CHURCHTOOLS_CLIENT_ID=CHANGEME
CHURCHTOOLS_CLIENT_SECRET=CHANGEME
-CHURCHTOOLS_REDIRECT_URI=http://localhost:8000/auth/churchtools/callback
+CHURCHTOOLS_REDIRECT_URI=http://cts-work.test/auth/churchtools/callback
# File Upload Configuration
# Maximum file size in bytes (default: 100MB)
UPLOAD_MAX_FILE_SIZE=104857600
UPLOAD_TEMP_DIR=/tmp
+
+# TestData
+TEST_CTS_USERNAME=
+TEST_CTS_PASSWORD=
diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php
index 823fbd4..a01af04 100644
--- a/app/Http/Controllers/AuthController.php
+++ b/app/Http/Controllers/AuthController.php
@@ -17,7 +17,9 @@ class AuthController extends Controller
*/
public function showLogin(): Response
{
- return Inertia::render('Auth/Login');
+ return Inertia::render('Auth/Login', [
+ 'canDevLogin' => app()->environment('local', 'testing'),
+ ]);
}
/**
diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php
index 584104c..72b3505 100644
--- a/database/factories/UserFactory.php
+++ b/database/factories/UserFactory.php
@@ -29,6 +29,10 @@ public function definition(): array
'email_verified_at' => now(),
'password' => static::$password ??= Hash::make('password'),
'remember_token' => Str::random(10),
+ 'churchtools_id' => fake()->unique()->numberBetween(1000, 99999),
+ 'avatar' => null,
+ 'churchtools_groups' => [],
+ 'churchtools_roles' => [],
];
}
diff --git a/resources/js/Pages/Auth/Login.vue b/resources/js/Pages/Auth/Login.vue
index 68b5236..397d83c 100644
--- a/resources/js/Pages/Auth/Login.vue
+++ b/resources/js/Pages/Auth/Login.vue
@@ -1,6 +1,10 @@
@@ -25,6 +29,17 @@ import { Head } from '@inertiajs/vue3';
Mit ChurchTools anmelden
+
+
diff --git a/routes/web.php b/routes/web.php
index dcac5f2..dce4193 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -9,6 +9,7 @@
use App\Http\Controllers\TranslationController;
use Illuminate\Support\Facades\Route;
use Inertia\Inertia;
+use Illuminate\Support\Facades\Auth;
Route::middleware('guest')->group(function () {
Route::get('/login', [AuthController::class, 'showLogin'])->name('login');
@@ -16,6 +17,26 @@
Route::get('/auth/churchtools/callback', [AuthController::class, 'callback'])->name('auth.churchtools.callback');
});
+if (app()->environment('local', 'testing')) {
+ Route::middleware('guest')->group(function () {
+ Route::post('/dev-login', function () {
+ $user = \App\Models\User::updateOrCreate(
+ ['email' => 'test@local.dev'],
+ [
+ 'name' => 'Test Benutzer',
+ 'churchtools_id' => 99999,
+ 'password' => '',
+ 'avatar' => null,
+ 'churchtools_groups' => [],
+ 'churchtools_roles' => [],
+ ]
+ );
+ Auth::login($user);
+ return redirect()->route('dashboard');
+ })->name('dev-login');
+ });
+}
+
Route::post('/logout', [AuthController::class, 'logout'])
->middleware('auth')
->name('logout');