Compare commits
9 Commits
dev-001
...
895e44c984
| Author | SHA1 | Date | |
|---|---|---|---|
| 895e44c984 | |||
| ef3d03200e | |||
| 6c891ff64a | |||
| d9ba5ab4f1 | |||
| 1816ca5165 | |||
| dff7d65476 | |||
| ce57669263 | |||
| 2444aab204 | |||
| 7b2f2de1f0 |
5
.dockerignore
Normal file
5
.dockerignore
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
.ai
|
||||||
|
.junie
|
||||||
|
.git
|
||||||
|
storage
|
||||||
|
tests
|
||||||
@@ -41,7 +41,7 @@ class CreateController extends CommonController {
|
|||||||
$payPerDay = $request->input('eventPayPerDay');
|
$payPerDay = $request->input('eventPayPerDay');
|
||||||
$payDirect = $request->input('eventPayDirectly');
|
$payDirect = $request->input('eventPayDirectly');
|
||||||
|
|
||||||
$billingDeadline = $eventEnd->modify('+1 month');
|
$billingDeadline = $eventEnd->modify('+6 weeks');
|
||||||
|
|
||||||
$createRequest = new CreateEventRequest(
|
$createRequest = new CreateEventRequest(
|
||||||
$request->input('eventName'),
|
$request->input('eventName'),
|
||||||
|
|||||||
@@ -16,10 +16,13 @@ Route::middleware(IdentifyTenant::class)->group(function () {
|
|||||||
Route::get('/{eventId}/signup', SignupController::class);
|
Route::get('/{eventId}/signup', SignupController::class);
|
||||||
|
|
||||||
Route::middleware(['auth'])->group(function () {
|
Route::middleware(['auth'])->group(function () {
|
||||||
Route::get('/new', CreateController::class);
|
|
||||||
Route::get('/details/{eventId}', DetailsController::class);
|
Route::get('/details/{eventId}', DetailsController::class);
|
||||||
Route::get('/details/{eventId}/pdf/{listType}', [DetailsController::class, 'downloadPdfList']);
|
Route::get('/details/{eventId}/pdf/{listType}', [DetailsController::class, 'downloadPdfList']);
|
||||||
Route::get('/details/{eventId}/csv/{listType}', [DetailsController::class, 'downloadCsvList']);
|
Route::get('/details/{eventId}/csv/{listType}', [DetailsController::class, 'downloadCsvList']);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Route::middleware(['auth'])->group(function () {
|
||||||
|
Route::get('/create-event', CreateController::class);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ class UserRegistrationCommand {
|
|||||||
return $response;
|
return $response;
|
||||||
}
|
}
|
||||||
|
|
||||||
$generateActivationCoedeRequest = new GenerateActivationTokenRequest($user);
|
$generateActivationCoedeRequest = new GenerateActivationTokenRequest($user, new \DateTime()->add(new \DateInterval('P1D')));
|
||||||
$generateActivationCoedeDommand = new GenerateActivationTokenCommand($generateActivationCoedeRequest);
|
$generateActivationCoedeDommand = new GenerateActivationTokenCommand($generateActivationCoedeRequest);
|
||||||
$result = $generateActivationCoedeDommand->execute();
|
$result = $generateActivationCoedeDommand->execute();
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,8 @@ class activationCodeTemplate extends MessageTemplate {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function composeMessage(EmailAddress $emailAddress, string $activationCode): void {
|
public function composeMessage(EmailAddress $emailAddress, string $activationCode): void {
|
||||||
$this->message = "Dein Aktivierungscode lautet: {$activationCode}" . PHP_EOL .
|
$this->message = "Hallo,<br >dein angefordertet Aktivierungscode lautet: {$activationCode}<br />.
|
||||||
"Gib diesen zusammen mit der Mailadresse {$emailAddress->getValue()} ein.";
|
Gib diesen zusammen mit der Mailadresse {$emailAddress->getValue()} ein.<br /><br />
|
||||||
|
Hast du keinen Code angefordert?<br />In diesem Fall kannst du die E-Mail ignorieren.";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ class GlobalDataProvider {
|
|||||||
$navigation['events'][] = ['url' => '/event/details/' . $event->identifier, 'display' => $event->name];
|
$navigation['events'][] = ['url' => '/event/details/' . $event->identifier, 'display' => $event->name];
|
||||||
}
|
}
|
||||||
|
|
||||||
$navigation['events'][] = ['url' => '/event/new', 'display' => 'Neue Veranstaltung'];
|
$navigation['events'][] = ['url' => '/create-event', 'display' => 'Neue Veranstaltung'];
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ return new class extends Migration {
|
|||||||
$table->foreignId('cost_unit_id')->nullable()->constrained('cost_units', 'id')->restrictOnDelete()->cascadeOnUpdate();
|
$table->foreignId('cost_unit_id')->nullable()->constrained('cost_units', 'id')->restrictOnDelete()->cascadeOnUpdate();
|
||||||
|
|
||||||
$table->string('name');
|
$table->string('name');
|
||||||
$table->string('identifier');
|
$table->string('identifier')->unique();
|
||||||
$table->string('location');
|
$table->string('location');
|
||||||
$table->string('postal_code');
|
$table->string('postal_code');
|
||||||
$table->string('email');
|
$table->string('email');
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ return new class extends Migration {
|
|||||||
|
|
||||||
$table->foreignId('event_id')->constrained('events', 'id')->cascadeOnDelete()->cascadeOnUpdate();
|
$table->foreignId('event_id')->constrained('events', 'id')->cascadeOnDelete()->cascadeOnUpdate();
|
||||||
$table->foreignId('user_id')->nullable()->constrained('users', 'id')->cascadeOnDelete()->cascadeOnUpdate();
|
$table->foreignId('user_id')->nullable()->constrained('users', 'id')->cascadeOnDelete()->cascadeOnUpdate();
|
||||||
$table->string('identifier');
|
$table->string('identifier')->unique();
|
||||||
$table->string('firstname');
|
$table->string('firstname');
|
||||||
$table->string('lastname');
|
$table->string('lastname');
|
||||||
$table->string('nickname')->nullable();
|
$table->string('nickname')->nullable();
|
||||||
@@ -63,7 +63,7 @@ return new class extends Migration {
|
|||||||
$table->dateTime('unregistered_at')->nullable();
|
$table->dateTime('unregistered_at')->nullable();
|
||||||
|
|
||||||
$table->foreign('swimming_permission')->references('slug')->on('swimming_permissions')->restrictOnDelete()->cascadeOnUpdate();
|
$table->foreign('swimming_permission')->references('slug')->on('swimming_permissions')->restrictOnDelete()->cascadeOnUpdate();
|
||||||
$table->foreign('eating_habits')->references('slug')->on('eating_habits')->restrictOnDelete()->cascadeOnUpdate();
|
$table->foreign('eating_habit')->references('slug')->on('eating_habits')->restrictOnDelete()->cascadeOnUpdate();
|
||||||
$table->foreign('first_aid_permission')->references('slug')->on('first_aid_permissions')->restrictOnDelete()->cascadeOnUpdate();
|
$table->foreign('first_aid_permission')->references('slug')->on('first_aid_permissions')->restrictOnDelete()->cascadeOnUpdate();
|
||||||
$table->foreign('tenant')->references('slug')->on('tenants')->restrictOnDelete()->cascadeOnUpdate();
|
$table->foreign('tenant')->references('slug')->on('tenants')->restrictOnDelete()->cascadeOnUpdate();
|
||||||
$table->foreign('local_group')->references('slug')->on('tenants')->restrictOnDelete()->cascadeOnUpdate();
|
$table->foreign('local_group')->references('slug')->on('tenants')->restrictOnDelete()->cascadeOnUpdate();
|
||||||
|
|||||||
14
docker-compose.prod
Normal file
14
docker-compose.prod
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
services:
|
||||||
|
mareike-app:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: docker/prod.Dockerfile
|
||||||
|
|
||||||
|
mareike-nginx:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: docker/Dockerfile.nginx
|
||||||
|
depends_on:
|
||||||
|
- mareike-app
|
||||||
|
ports:
|
||||||
|
- 9000:80
|
||||||
41
docker/prod.Dockerfile
Normal file
41
docker/prod.Dockerfile
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
FROM php:8.5-fpm-alpine AS base
|
||||||
|
|
||||||
|
ARG UID=1000
|
||||||
|
ARG GID=1000
|
||||||
|
ENV USER=mareike
|
||||||
|
ENV GROUPNAME=$USER
|
||||||
|
|
||||||
|
RUN addgroup -g ${GID} -S ${GROUPNAME} \
|
||||||
|
&& adduser -u ${UID} -D -S -G ${GROUPNAME} ${USER}
|
||||||
|
|
||||||
|
RUN apk add --no-cache \
|
||||||
|
mc \
|
||||||
|
unzip \
|
||||||
|
rsync
|
||||||
|
|
||||||
|
COPY --chmod=0755 /docker/php/composer.phar /usr/bin/composer
|
||||||
|
RUN apk add --no-cache --virtual .build-deps \
|
||||||
|
autoconf \
|
||||||
|
build-base \
|
||||||
|
libzip-dev \
|
||||||
|
libpng-dev \
|
||||||
|
libxml2-dev \
|
||||||
|
oniguruma-dev \
|
||||||
|
nodejs \
|
||||||
|
npm
|
||||||
|
|
||||||
|
RUN docker-php-ext-install mysqli pdo pdo_mysql mbstring zip exif pcntl gd imagick
|
||||||
|
|
||||||
|
COPY . /var/www/html
|
||||||
|
WORKDIR /var/www/html
|
||||||
|
RUN composer install --no-dev --optimize-autoloader
|
||||||
|
RUN npm install
|
||||||
|
RUN npm run build
|
||||||
|
|
||||||
|
EXPOSE 9000
|
||||||
|
|
||||||
|
RUN mv /var/www/html /src
|
||||||
|
COPY docker/run-mareike.sh /usr/local/bin/
|
||||||
|
|
||||||
|
USER mareike
|
||||||
|
CMD ["run-mareike.sh"]
|
||||||
17
docker/run-mareike.sh
Normal file
17
docker/run-mareike.sh
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
rsync -rlDog --chown $USER:$GROUPNAME --delete --exclude=/storage /src/ /var/www/html
|
||||||
|
install -d -m 0755 -o $USER -g $GROUPNAME \
|
||||||
|
storage \
|
||||||
|
storage/framework \
|
||||||
|
storage/framework/cache \
|
||||||
|
storage/framework/sessions \
|
||||||
|
storage/framework/views \
|
||||||
|
storage/app \
|
||||||
|
storage/app/private \
|
||||||
|
storage/logs
|
||||||
|
|
||||||
|
php artisan migrate --force
|
||||||
|
|
||||||
|
exec "php-fpm"
|
||||||
Reference in New Issue
Block a user