Code Styling
This commit is contained in:
@@ -0,0 +1,38 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Domains\Admin\Actions\CreateTenant;
|
||||||
|
|
||||||
|
use App\Models\Tenant;
|
||||||
|
|
||||||
|
class CreateTenantAction
|
||||||
|
{
|
||||||
|
public function __construct(private CreateTenantRequest $request)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public function execute(): CreateTenantResponse
|
||||||
|
{
|
||||||
|
$response = new CreateTenantResponse();
|
||||||
|
|
||||||
|
$tenant = Tenant::create([
|
||||||
|
'name' => $this->request->name,
|
||||||
|
'slug' => $this->request->slug,
|
||||||
|
'url' => $this->request->url,
|
||||||
|
'email' => '',
|
||||||
|
'email_finance' => '',
|
||||||
|
'account_name' => '',
|
||||||
|
'account_iban' => '',
|
||||||
|
'account_bic' => '',
|
||||||
|
'city' => '',
|
||||||
|
'postcode' => '',
|
||||||
|
'is_active_local_group' => true,
|
||||||
|
'has_active_instance' => true,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$response->success = true;
|
||||||
|
$response->message = 'Stamm wurde angelegt.';
|
||||||
|
$response->slug = $tenant->slug;
|
||||||
|
|
||||||
|
return $response;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Domains\Admin\Actions\CreateTenant;
|
||||||
|
|
||||||
|
class CreateTenantRequest
|
||||||
|
{
|
||||||
|
public function __construct(
|
||||||
|
public string $name,
|
||||||
|
public string $slug,
|
||||||
|
public string $url,
|
||||||
|
) {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Domains\Admin\Actions\CreateTenant;
|
||||||
|
|
||||||
|
class CreateTenantResponse
|
||||||
|
{
|
||||||
|
public bool $success = false;
|
||||||
|
public string $message = '';
|
||||||
|
public ?string $slug = null;
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Domains\Admin\Actions\ToggleUserActive;
|
||||||
|
|
||||||
|
class ToggleUserActiveAction
|
||||||
|
{
|
||||||
|
public function __construct(private ToggleUserActiveRequest $request)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public function execute(): ToggleUserActiveResponse
|
||||||
|
{
|
||||||
|
$response = new ToggleUserActiveResponse();
|
||||||
|
|
||||||
|
if ($this->request->currentUserId === $this->request->user->id) {
|
||||||
|
$response->message = 'Du kannst dich nicht selbst deaktivieren.';
|
||||||
|
return $response;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->request->user->update(['active' => !$this->request->user->active]);
|
||||||
|
|
||||||
|
$status = $this->request->user->active ? 'aktiviert' : 'deaktiviert';
|
||||||
|
|
||||||
|
$response->success = true;
|
||||||
|
$response->message = 'Benutzer*in wurde ' . $status . '.';
|
||||||
|
$response->active = $this->request->user->active;
|
||||||
|
|
||||||
|
return $response;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Domains\Admin\Actions\ToggleUserActive;
|
||||||
|
|
||||||
|
use App\Models\User;
|
||||||
|
|
||||||
|
class ToggleUserActiveRequest
|
||||||
|
{
|
||||||
|
public function __construct(
|
||||||
|
public User $user,
|
||||||
|
public int $currentUserId,
|
||||||
|
) {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Domains\Admin\Actions\ToggleUserActive;
|
||||||
|
|
||||||
|
class ToggleUserActiveResponse
|
||||||
|
{
|
||||||
|
public bool $success = false;
|
||||||
|
public string $message = '';
|
||||||
|
public ?bool $active = null;
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Domains\Admin\Actions\UpdateTenantContact;
|
||||||
|
|
||||||
|
class UpdateTenantContactAction
|
||||||
|
{
|
||||||
|
public function __construct(private UpdateTenantContactRequest $request)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public function execute(): UpdateTenantContactResponse
|
||||||
|
{
|
||||||
|
$response = new UpdateTenantContactResponse();
|
||||||
|
|
||||||
|
$this->request->tenant->update([
|
||||||
|
'email' => $this->request->email,
|
||||||
|
'email_finance' => $this->request->emailFinance,
|
||||||
|
'postcode' => $this->request->postcode,
|
||||||
|
'city' => $this->request->city,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$response->success = true;
|
||||||
|
$response->message = 'Kontaktdaten wurden gespeichert.';
|
||||||
|
|
||||||
|
return $response;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Domains\Admin\Actions\UpdateTenantContact;
|
||||||
|
|
||||||
|
use App\Models\Tenant;
|
||||||
|
|
||||||
|
class UpdateTenantContactRequest
|
||||||
|
{
|
||||||
|
public function __construct(
|
||||||
|
public Tenant $tenant,
|
||||||
|
public string $email,
|
||||||
|
public string $emailFinance,
|
||||||
|
public string $postcode,
|
||||||
|
public string $city,
|
||||||
|
) {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Domains\Admin\Actions\UpdateTenantContact;
|
||||||
|
|
||||||
|
class UpdateTenantContactResponse
|
||||||
|
{
|
||||||
|
public bool $success = false;
|
||||||
|
public string $message = '';
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Domains\Admin\Actions\UpdateTenantGdpr;
|
||||||
|
|
||||||
|
class UpdateTenantGdprAction
|
||||||
|
{
|
||||||
|
public function __construct(private UpdateTenantGdprRequest $request)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public function execute(): UpdateTenantGdprResponse
|
||||||
|
{
|
||||||
|
$response = new UpdateTenantGdprResponse();
|
||||||
|
|
||||||
|
$this->request->tenant->update([
|
||||||
|
'gdpr_text' => $this->request->gdprText,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$response->success = true;
|
||||||
|
$response->message = 'Datenschutzerklärung wurde gespeichert.';
|
||||||
|
|
||||||
|
return $response;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Domains\Admin\Actions\UpdateTenantGdpr;
|
||||||
|
|
||||||
|
use App\Models\Tenant;
|
||||||
|
|
||||||
|
class UpdateTenantGdprRequest
|
||||||
|
{
|
||||||
|
public function __construct(
|
||||||
|
public Tenant $tenant,
|
||||||
|
public string $gdprText,
|
||||||
|
) {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Domains\Admin\Actions\UpdateTenantGdpr;
|
||||||
|
|
||||||
|
class UpdateTenantGdprResponse
|
||||||
|
{
|
||||||
|
public bool $success = false;
|
||||||
|
public string $message = '';
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Domains\Admin\Actions\UpdateTenantGeneral;
|
||||||
|
|
||||||
|
class UpdateTenantGeneralAction
|
||||||
|
{
|
||||||
|
public function __construct(private UpdateTenantGeneralRequest $request)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public function execute(): UpdateTenantGeneralResponse
|
||||||
|
{
|
||||||
|
$response = new UpdateTenantGeneralResponse();
|
||||||
|
|
||||||
|
$this->request->tenant->update([
|
||||||
|
'name' => $this->request->name,
|
||||||
|
'slug' => $this->request->slug,
|
||||||
|
'url' => $this->request->url,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$response->success = true;
|
||||||
|
$response->message = 'Allgemeine Daten wurden gespeichert.';
|
||||||
|
|
||||||
|
return $response;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Domains\Admin\Actions\UpdateTenantGeneral;
|
||||||
|
|
||||||
|
use App\Models\Tenant;
|
||||||
|
|
||||||
|
class UpdateTenantGeneralRequest
|
||||||
|
{
|
||||||
|
public function __construct(
|
||||||
|
public Tenant $tenant,
|
||||||
|
public string $name,
|
||||||
|
public string $slug,
|
||||||
|
public string $url,
|
||||||
|
) {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Domains\Admin\Actions\UpdateTenantGeneral;
|
||||||
|
|
||||||
|
class UpdateTenantGeneralResponse
|
||||||
|
{
|
||||||
|
public bool $success = false;
|
||||||
|
public string $message = '';
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Domains\Admin\Actions\UpdateTenantImpress;
|
||||||
|
|
||||||
|
class UpdateTenantImpressAction
|
||||||
|
{
|
||||||
|
public function __construct(private UpdateTenantImpressRequest $request)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public function execute(): UpdateTenantImpressResponse
|
||||||
|
{
|
||||||
|
$response = new UpdateTenantImpressResponse();
|
||||||
|
|
||||||
|
$this->request->tenant->update([
|
||||||
|
'impress_text' => $this->request->impressText,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$response->success = true;
|
||||||
|
$response->message = 'Impressum wurde gespeichert.';
|
||||||
|
|
||||||
|
return $response;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Domains\Admin\Actions\UpdateTenantImpress;
|
||||||
|
|
||||||
|
use App\Models\Tenant;
|
||||||
|
|
||||||
|
class UpdateTenantImpressRequest
|
||||||
|
{
|
||||||
|
public function __construct(
|
||||||
|
public Tenant $tenant,
|
||||||
|
public string $impressText,
|
||||||
|
) {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Domains\Admin\Actions\UpdateTenantImpress;
|
||||||
|
|
||||||
|
class UpdateTenantImpressResponse
|
||||||
|
{
|
||||||
|
public bool $success = false;
|
||||||
|
public string $message = '';
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Domains\Admin\Actions\UpdateTenantPayment;
|
||||||
|
|
||||||
|
class UpdateTenantPaymentAction
|
||||||
|
{
|
||||||
|
public function __construct(private UpdateTenantPaymentRequest $request)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public function execute(): UpdateTenantPaymentResponse
|
||||||
|
{
|
||||||
|
$response = new UpdateTenantPaymentResponse();
|
||||||
|
|
||||||
|
$this->request->tenant->update([
|
||||||
|
'account_iban' => $this->request->accountIban,
|
||||||
|
'account_bic' => $this->request->accountBic,
|
||||||
|
'account_name' => $this->request->accountName,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$response->success = true;
|
||||||
|
$response->message = 'Bezahldaten wurden gespeichert.';
|
||||||
|
|
||||||
|
return $response;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Domains\Admin\Actions\UpdateTenantPayment;
|
||||||
|
|
||||||
|
use App\Models\Tenant;
|
||||||
|
|
||||||
|
class UpdateTenantPaymentRequest
|
||||||
|
{
|
||||||
|
public function __construct(
|
||||||
|
public Tenant $tenant,
|
||||||
|
public string $accountIban,
|
||||||
|
public string $accountBic,
|
||||||
|
public string $accountName,
|
||||||
|
) {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Domains\Admin\Actions\UpdateTenantPayment;
|
||||||
|
|
||||||
|
class UpdateTenantPaymentResponse
|
||||||
|
{
|
||||||
|
public bool $success = false;
|
||||||
|
public string $message = '';
|
||||||
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Domains\Admin\Actions\UpdateUser;
|
||||||
|
|
||||||
|
class UpdateUserAction
|
||||||
|
{
|
||||||
|
public function __construct(private UpdateUserRequest $request)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public function execute(): UpdateUserResponse
|
||||||
|
{
|
||||||
|
$response = new UpdateUserResponse();
|
||||||
|
|
||||||
|
$allowedFields = [
|
||||||
|
'firstname', 'lastname', 'nickname', 'email', 'phone', 'birthday',
|
||||||
|
'membership_id', 'address_1', 'address_2', 'postcode', 'city',
|
||||||
|
'eating_habits', 'swimming_permission', 'first_aid_permission',
|
||||||
|
'bank_account_owner', 'bank_account_iban',
|
||||||
|
'medications', 'allergies', 'intolerances',
|
||||||
|
'user_role_local_group',
|
||||||
|
];
|
||||||
|
|
||||||
|
if ($this->request->isLvTenant) {
|
||||||
|
$allowedFields[] = 'local_group';
|
||||||
|
if (!$this->request->isOwnUser) {
|
||||||
|
$allowedFields[] = 'user_role_main';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$data = array_intersect_key($this->request->data, array_flip($allowedFields));
|
||||||
|
$this->request->user->update($data);
|
||||||
|
|
||||||
|
$response->success = true;
|
||||||
|
$response->message = 'Benutzerdaten wurden gespeichert.';
|
||||||
|
|
||||||
|
return $response;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Domains\Admin\Actions\UpdateUser;
|
||||||
|
|
||||||
|
use App\Models\User;
|
||||||
|
|
||||||
|
class UpdateUserRequest
|
||||||
|
{
|
||||||
|
public function __construct(
|
||||||
|
public User $user,
|
||||||
|
public array $data,
|
||||||
|
public bool $isOwnUser,
|
||||||
|
public bool $isLvTenant,
|
||||||
|
) {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Domains\Admin\Actions\UpdateUser;
|
||||||
|
|
||||||
|
class UpdateUserResponse
|
||||||
|
{
|
||||||
|
public bool $success = false;
|
||||||
|
public string $message = '';
|
||||||
|
}
|
||||||
@@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
namespace App\Domains\Admin\Controllers;
|
namespace App\Domains\Admin\Controllers;
|
||||||
|
|
||||||
use App\Models\Tenant;
|
|
||||||
use App\Scopes\CommonController;
|
use App\Scopes\CommonController;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -11,7 +10,7 @@ class ManagedTenantContactGetController extends CommonController
|
|||||||
{
|
{
|
||||||
public function __invoke(string $slug, Request $request): JsonResponse
|
public function __invoke(string $slug, Request $request): JsonResponse
|
||||||
{
|
{
|
||||||
$tenant = Tenant::where('slug', $slug)->firstOrFail();
|
$tenant = $this->adminTenants->findBySlug($slug);
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'email' => $tenant->email,
|
'email' => $tenant->email,
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
namespace App\Domains\Admin\Controllers;
|
namespace App\Domains\Admin\Controllers;
|
||||||
|
|
||||||
use App\Models\Tenant;
|
use App\Domains\Admin\Actions\UpdateTenantContact\UpdateTenantContactAction;
|
||||||
|
use App\Domains\Admin\Actions\UpdateTenantContact\UpdateTenantContactRequest;
|
||||||
use App\Scopes\CommonController;
|
use App\Scopes\CommonController;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -11,18 +12,21 @@ class ManagedTenantContactUpdateController extends CommonController
|
|||||||
{
|
{
|
||||||
public function __invoke(string $slug, Request $request): JsonResponse
|
public function __invoke(string $slug, Request $request): JsonResponse
|
||||||
{
|
{
|
||||||
$tenant = Tenant::where('slug', $slug)->firstOrFail();
|
$tenant = $this->adminTenants->findBySlug($slug);
|
||||||
|
|
||||||
$tenant->update([
|
$action = new UpdateTenantContactAction(new UpdateTenantContactRequest(
|
||||||
'email' => $request->input('email'),
|
tenant: $tenant,
|
||||||
'email_finance' => $request->input('email_finance'),
|
email: $request->input('email'),
|
||||||
'postcode' => $request->input('postcode'),
|
emailFinance: $request->input('email_finance'),
|
||||||
'city' => $request->input('city'),
|
postcode: $request->input('postcode'),
|
||||||
]);
|
city: $request->input('city'),
|
||||||
|
));
|
||||||
|
|
||||||
|
$response = $action->execute();
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'status' => 'success',
|
'status' => $response->success ? 'success' : 'error',
|
||||||
'message' => 'Kontaktdaten wurden gespeichert.',
|
'message' => $response->message,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
namespace App\Domains\Admin\Controllers;
|
namespace App\Domains\Admin\Controllers;
|
||||||
|
|
||||||
use App\Models\Tenant;
|
|
||||||
use App\Scopes\CommonController;
|
use App\Scopes\CommonController;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -11,7 +10,7 @@ class ManagedTenantGdprGetController extends CommonController
|
|||||||
{
|
{
|
||||||
public function __invoke(string $slug, Request $request): JsonResponse
|
public function __invoke(string $slug, Request $request): JsonResponse
|
||||||
{
|
{
|
||||||
$tenant = Tenant::where('slug', $slug)->firstOrFail();
|
$tenant = $this->adminTenants->findBySlug($slug);
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'gdpr_text' => $tenant->gdpr_text ?? '',
|
'gdpr_text' => $tenant->gdpr_text ?? '',
|
||||||
|
|||||||
@@ -2,24 +2,29 @@
|
|||||||
|
|
||||||
namespace App\Domains\Admin\Controllers;
|
namespace App\Domains\Admin\Controllers;
|
||||||
|
|
||||||
use App\Models\Tenant;
|
use App\Domains\Admin\Actions\UpdateTenantGdpr\UpdateTenantGdprAction;
|
||||||
|
use App\Domains\Admin\Actions\UpdateTenantGdpr\UpdateTenantGdprRequest;
|
||||||
use App\Scopes\CommonController;
|
use App\Scopes\CommonController;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
class ManagedTenantGdprUpdateController extends CommonController
|
class ManagedTenantGdprUpdateController extends CommonController
|
||||||
{
|
{
|
||||||
|
|
||||||
public function __invoke(string $slug, Request $request): JsonResponse
|
public function __invoke(string $slug, Request $request): JsonResponse
|
||||||
{
|
{
|
||||||
$tenant = Tenant::where('slug', $slug)->firstOrFail();
|
$tenant = $this->adminTenants->findBySlug($slug);
|
||||||
|
|
||||||
$tenant->update([
|
$action = new UpdateTenantGdprAction(new UpdateTenantGdprRequest(
|
||||||
'gdpr_text' => $request->input('gdpr_text'),
|
tenant: $tenant,
|
||||||
]);
|
gdprText: $request->input('gdpr_text'),
|
||||||
|
));
|
||||||
|
|
||||||
|
$response = $action->execute();
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'status' => 'success',
|
'status' => $response->success ? 'success' : 'error',
|
||||||
'message' => 'Datenschutzerklärung wurde gespeichert.',
|
'message' => $response->message,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
namespace App\Domains\Admin\Controllers;
|
namespace App\Domains\Admin\Controllers;
|
||||||
|
|
||||||
use App\Models\Tenant;
|
|
||||||
use App\Scopes\CommonController;
|
use App\Scopes\CommonController;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -11,7 +10,7 @@ class ManagedTenantImpressGetController extends CommonController
|
|||||||
{
|
{
|
||||||
public function __invoke(string $slug, Request $request): JsonResponse
|
public function __invoke(string $slug, Request $request): JsonResponse
|
||||||
{
|
{
|
||||||
$tenant = Tenant::where('slug', $slug)->firstOrFail();
|
$tenant = $this->adminTenants->findBySlug($slug);
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'impress_text' => $tenant->impress_text ?? '',
|
'impress_text' => $tenant->impress_text ?? '',
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
namespace App\Domains\Admin\Controllers;
|
namespace App\Domains\Admin\Controllers;
|
||||||
|
|
||||||
use App\Models\Tenant;
|
use App\Domains\Admin\Actions\UpdateTenantImpress\UpdateTenantImpressAction;
|
||||||
|
use App\Domains\Admin\Actions\UpdateTenantImpress\UpdateTenantImpressRequest;
|
||||||
use App\Scopes\CommonController;
|
use App\Scopes\CommonController;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -11,15 +12,18 @@ class ManagedTenantImpressUpdateController extends CommonController
|
|||||||
{
|
{
|
||||||
public function __invoke(string $slug, Request $request): JsonResponse
|
public function __invoke(string $slug, Request $request): JsonResponse
|
||||||
{
|
{
|
||||||
$tenant = Tenant::where('slug', $slug)->firstOrFail();
|
$tenant = $this->adminTenants->findBySlug($slug);
|
||||||
|
|
||||||
$tenant->update([
|
$action = new UpdateTenantImpressAction(new UpdateTenantImpressRequest(
|
||||||
'impress_text' => $request->input('impress_text'),
|
tenant: $tenant,
|
||||||
]);
|
impressText: $request->input('impress_text'),
|
||||||
|
));
|
||||||
|
|
||||||
|
$response = $action->execute();
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'status' => 'success',
|
'status' => $response->success ? 'success' : 'error',
|
||||||
'message' => 'Impressum wurde gespeichert.',
|
'message' => $response->message,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
namespace App\Domains\Admin\Controllers;
|
namespace App\Domains\Admin\Controllers;
|
||||||
|
|
||||||
use App\Models\Tenant;
|
|
||||||
use App\Scopes\CommonController;
|
use App\Scopes\CommonController;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -11,7 +10,7 @@ class ManagedTenantPaymentGetController extends CommonController
|
|||||||
{
|
{
|
||||||
public function __invoke(string $slug, Request $request): JsonResponse
|
public function __invoke(string $slug, Request $request): JsonResponse
|
||||||
{
|
{
|
||||||
$tenant = Tenant::where('slug', $slug)->firstOrFail();
|
$tenant = $this->adminTenants->findBySlug($slug);
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'account_iban' => $tenant->account_iban,
|
'account_iban' => $tenant->account_iban,
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
namespace App\Domains\Admin\Controllers;
|
namespace App\Domains\Admin\Controllers;
|
||||||
|
|
||||||
use App\Models\Tenant;
|
use App\Domains\Admin\Actions\UpdateTenantPayment\UpdateTenantPaymentAction;
|
||||||
|
use App\Domains\Admin\Actions\UpdateTenantPayment\UpdateTenantPaymentRequest;
|
||||||
use App\Scopes\CommonController;
|
use App\Scopes\CommonController;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -11,17 +12,20 @@ class ManagedTenantPaymentUpdateController extends CommonController
|
|||||||
{
|
{
|
||||||
public function __invoke(string $slug, Request $request): JsonResponse
|
public function __invoke(string $slug, Request $request): JsonResponse
|
||||||
{
|
{
|
||||||
$tenant = Tenant::where('slug', $slug)->firstOrFail();
|
$tenant = $this->adminTenants->findBySlug($slug);
|
||||||
|
|
||||||
$tenant->update([
|
$action = new UpdateTenantPaymentAction(new UpdateTenantPaymentRequest(
|
||||||
'account_iban' => $request->input('account_iban'),
|
tenant: $tenant,
|
||||||
'account_bic' => $request->input('account_bic'),
|
accountIban: $request->input('account_iban'),
|
||||||
'account_name' => $request->input('account_name'),
|
accountBic: $request->input('account_bic'),
|
||||||
]);
|
accountName: $request->input('account_name'),
|
||||||
|
));
|
||||||
|
|
||||||
|
$response = $action->execute();
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'status' => 'success',
|
'status' => $response->success ? 'success' : 'error',
|
||||||
'message' => 'Bezahldaten wurden gespeichert.',
|
'message' => $response->message,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
namespace App\Domains\Admin\Controllers;
|
namespace App\Domains\Admin\Controllers;
|
||||||
|
|
||||||
|
use App\Domains\Admin\Actions\UpdateTenantContact\UpdateTenantContactAction;
|
||||||
|
use App\Domains\Admin\Actions\UpdateTenantContact\UpdateTenantContactRequest;
|
||||||
use App\Scopes\CommonController;
|
use App\Scopes\CommonController;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -10,16 +12,19 @@ class TenantContactUpdateController extends CommonController
|
|||||||
{
|
{
|
||||||
public function __invoke(Request $request): JsonResponse
|
public function __invoke(Request $request): JsonResponse
|
||||||
{
|
{
|
||||||
$this->tenant->update([
|
$action = new UpdateTenantContactAction(new UpdateTenantContactRequest(
|
||||||
'email' => $request->input('email'),
|
tenant: $this->tenant,
|
||||||
'email_finance' => $request->input('email_finance'),
|
email: $request->input('email'),
|
||||||
'postcode' => $request->input('postcode'),
|
emailFinance: $request->input('email_finance'),
|
||||||
'city' => $request->input('city'),
|
postcode: $request->input('postcode'),
|
||||||
]);
|
city: $request->input('city'),
|
||||||
|
));
|
||||||
|
|
||||||
|
$response = $action->execute();
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'status' => 'success',
|
'status' => $response->success ? 'success' : 'error',
|
||||||
'message' => 'Kontaktdaten wurden gespeichert.',
|
'message' => $response->message,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
namespace App\Domains\Admin\Controllers;
|
namespace App\Domains\Admin\Controllers;
|
||||||
|
|
||||||
use App\Models\Tenant;
|
use App\Domains\Admin\Actions\CreateTenant\CreateTenantAction;
|
||||||
|
use App\Domains\Admin\Actions\CreateTenant\CreateTenantRequest;
|
||||||
use App\Scopes\CommonController;
|
use App\Scopes\CommonController;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -11,25 +12,18 @@ class TenantCreateController extends CommonController
|
|||||||
{
|
{
|
||||||
public function __invoke(Request $request): JsonResponse
|
public function __invoke(Request $request): JsonResponse
|
||||||
{
|
{
|
||||||
$tenant = Tenant::create([
|
$action = new CreateTenantAction(new CreateTenantRequest(
|
||||||
'name' => $request->input('name'),
|
name: $request->input('name'),
|
||||||
'slug' => $request->input('slug'),
|
slug: $request->input('slug'),
|
||||||
'url' => $request->input('url'),
|
url: $request->input('url'),
|
||||||
'email' => '',
|
));
|
||||||
'email_finance' => '',
|
|
||||||
'account_name' => '',
|
$response = $action->execute();
|
||||||
'account_iban' => '',
|
|
||||||
'account_bic' => '',
|
|
||||||
'city' => '',
|
|
||||||
'postcode' => '',
|
|
||||||
'is_active_local_group' => true,
|
|
||||||
'has_active_instance' => true,
|
|
||||||
]);
|
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'status' => 'success',
|
'status' => $response->success ? 'success' : 'error',
|
||||||
'message' => 'Stamm wurde angelegt.',
|
'message' => $response->message,
|
||||||
'slug' => $tenant->slug,
|
'slug' => $response->slug,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
namespace App\Domains\Admin\Controllers;
|
namespace App\Domains\Admin\Controllers;
|
||||||
|
|
||||||
use App\Models\Tenant;
|
|
||||||
use App\Providers\InertiaProvider;
|
use App\Providers\InertiaProvider;
|
||||||
use App\Scopes\CommonController;
|
use App\Scopes\CommonController;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -12,7 +11,7 @@ class TenantEditPageController extends CommonController
|
|||||||
{
|
{
|
||||||
public function __invoke(string $slug, Request $request): Response
|
public function __invoke(string $slug, Request $request): Response
|
||||||
{
|
{
|
||||||
$tenant = Tenant::where('slug', $slug)->firstOrFail();
|
$tenant = $this->adminTenants->findBySlug($slug);
|
||||||
|
|
||||||
$inertiaProvider = new InertiaProvider('Admin/TenantEdit', [
|
$inertiaProvider = new InertiaProvider('Admin/TenantEdit', [
|
||||||
'tenant' => [
|
'tenant' => [
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
namespace App\Domains\Admin\Controllers;
|
namespace App\Domains\Admin\Controllers;
|
||||||
|
|
||||||
|
use App\Domains\Admin\Actions\UpdateTenantGdpr\UpdateTenantGdprAction;
|
||||||
|
use App\Domains\Admin\Actions\UpdateTenantGdpr\UpdateTenantGdprRequest;
|
||||||
use App\Scopes\CommonController;
|
use App\Scopes\CommonController;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -10,13 +12,16 @@ class TenantGdprUpdateController extends CommonController
|
|||||||
{
|
{
|
||||||
public function __invoke(Request $request): JsonResponse
|
public function __invoke(Request $request): JsonResponse
|
||||||
{
|
{
|
||||||
$this->tenant->update([
|
$action = new UpdateTenantGdprAction(new UpdateTenantGdprRequest(
|
||||||
'gdpr_text' => $request->input('gdpr_text'),
|
tenant: $this->tenant,
|
||||||
]);
|
gdprText: $request->input('gdpr_text'),
|
||||||
|
));
|
||||||
|
|
||||||
|
$response = $action->execute();
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'status' => 'success',
|
'status' => $response->success ? 'success' : 'error',
|
||||||
'message' => 'Datenschutzerklärung wurde gespeichert.',
|
'message' => $response->message,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
namespace App\Domains\Admin\Controllers;
|
namespace App\Domains\Admin\Controllers;
|
||||||
|
|
||||||
use App\Models\Tenant;
|
|
||||||
use App\Scopes\CommonController;
|
use App\Scopes\CommonController;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -11,7 +10,7 @@ class TenantGeneralGetController extends CommonController
|
|||||||
{
|
{
|
||||||
public function __invoke(string $slug, Request $request): JsonResponse
|
public function __invoke(string $slug, Request $request): JsonResponse
|
||||||
{
|
{
|
||||||
$tenant = Tenant::where('slug', $slug)->firstOrFail();
|
$tenant = $this->adminTenants->findBySlug($slug);
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'name' => $tenant->name,
|
'name' => $tenant->name,
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
namespace App\Domains\Admin\Controllers;
|
namespace App\Domains\Admin\Controllers;
|
||||||
|
|
||||||
use App\Models\Tenant;
|
use App\Domains\Admin\Actions\UpdateTenantGeneral\UpdateTenantGeneralAction;
|
||||||
|
use App\Domains\Admin\Actions\UpdateTenantGeneral\UpdateTenantGeneralRequest;
|
||||||
use App\Scopes\CommonController;
|
use App\Scopes\CommonController;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -11,17 +12,20 @@ class TenantGeneralUpdateController extends CommonController
|
|||||||
{
|
{
|
||||||
public function __invoke(string $slug, Request $request): JsonResponse
|
public function __invoke(string $slug, Request $request): JsonResponse
|
||||||
{
|
{
|
||||||
$tenant = Tenant::where('slug', $slug)->firstOrFail();
|
$tenant = $this->adminTenants->findBySlug($slug);
|
||||||
|
|
||||||
$tenant->update([
|
$action = new UpdateTenantGeneralAction(new UpdateTenantGeneralRequest(
|
||||||
'name' => $request->input('name'),
|
tenant: $tenant,
|
||||||
'slug' => $request->input('slug'),
|
name: $request->input('name'),
|
||||||
'url' => $request->input('url'),
|
slug: $request->input('slug'),
|
||||||
]);
|
url: $request->input('url'),
|
||||||
|
));
|
||||||
|
|
||||||
|
$response = $action->execute();
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'status' => 'success',
|
'status' => $response->success ? 'success' : 'error',
|
||||||
'message' => 'Allgemeine Daten wurden gespeichert.',
|
'message' => $response->message,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
namespace App\Domains\Admin\Controllers;
|
namespace App\Domains\Admin\Controllers;
|
||||||
|
|
||||||
|
use App\Domains\Admin\Actions\UpdateTenantImpress\UpdateTenantImpressAction;
|
||||||
|
use App\Domains\Admin\Actions\UpdateTenantImpress\UpdateTenantImpressRequest;
|
||||||
use App\Scopes\CommonController;
|
use App\Scopes\CommonController;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -10,13 +12,16 @@ class TenantImpressUpdateController extends CommonController
|
|||||||
{
|
{
|
||||||
public function __invoke(Request $request): JsonResponse
|
public function __invoke(Request $request): JsonResponse
|
||||||
{
|
{
|
||||||
$this->tenant->update([
|
$action = new UpdateTenantImpressAction(new UpdateTenantImpressRequest(
|
||||||
'impress_text' => $request->input('impress_text'),
|
tenant: $this->tenant,
|
||||||
]);
|
impressText: $request->input('impress_text'),
|
||||||
|
));
|
||||||
|
|
||||||
|
$response = $action->execute();
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'status' => 'success',
|
'status' => $response->success ? 'success' : 'error',
|
||||||
'message' => 'Impressum wurde gespeichert.',
|
'message' => $response->message,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
namespace App\Domains\Admin\Controllers;
|
namespace App\Domains\Admin\Controllers;
|
||||||
|
|
||||||
use App\Models\Tenant;
|
|
||||||
use App\Scopes\CommonController;
|
use App\Scopes\CommonController;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -11,7 +10,9 @@ class TenantListApiController extends CommonController
|
|||||||
{
|
{
|
||||||
public function __invoke(Request $request): JsonResponse
|
public function __invoke(Request $request): JsonResponse
|
||||||
{
|
{
|
||||||
$tenants = Tenant::where('has_active_instance', true)->get()->map(function ($tenant) {
|
$tenants = $this->adminTenants->getActiveTenants();
|
||||||
|
|
||||||
|
$mapped = $tenants->map(function ($tenant) {
|
||||||
return [
|
return [
|
||||||
'name' => $tenant->name,
|
'name' => $tenant->name,
|
||||||
'slug' => $tenant->slug,
|
'slug' => $tenant->slug,
|
||||||
@@ -20,6 +21,6 @@ class TenantListApiController extends CommonController
|
|||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
return response()->json(['tenants' => $tenants]);
|
return response()->json(['tenants' => $mapped]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
namespace App\Domains\Admin\Controllers;
|
namespace App\Domains\Admin\Controllers;
|
||||||
|
|
||||||
|
use App\Domains\Admin\Actions\UpdateTenantPayment\UpdateTenantPaymentAction;
|
||||||
|
use App\Domains\Admin\Actions\UpdateTenantPayment\UpdateTenantPaymentRequest;
|
||||||
use App\Scopes\CommonController;
|
use App\Scopes\CommonController;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -10,15 +12,18 @@ class TenantPaymentUpdateController extends CommonController
|
|||||||
{
|
{
|
||||||
public function __invoke(Request $request): JsonResponse
|
public function __invoke(Request $request): JsonResponse
|
||||||
{
|
{
|
||||||
$this->tenant->update([
|
$action = new UpdateTenantPaymentAction(new UpdateTenantPaymentRequest(
|
||||||
'account_iban' => $request->input('account_iban'),
|
tenant: $this->tenant,
|
||||||
'account_bic' => $request->input('account_bic'),
|
accountIban: $request->input('account_iban'),
|
||||||
'account_name' => $request->input('account_name'),
|
accountBic: $request->input('account_bic'),
|
||||||
]);
|
accountName: $request->input('account_name'),
|
||||||
|
));
|
||||||
|
|
||||||
|
$response = $action->execute();
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'status' => 'success',
|
'status' => $response->success ? 'success' : 'error',
|
||||||
'message' => 'Bezahldaten wurden gespeichert.',
|
'message' => $response->message,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,8 +3,6 @@
|
|||||||
namespace App\Domains\Admin\Controllers;
|
namespace App\Domains\Admin\Controllers;
|
||||||
|
|
||||||
use App\Enumerations\UserRole;
|
use App\Enumerations\UserRole;
|
||||||
use App\Models\Tenant;
|
|
||||||
use App\Models\User;
|
|
||||||
use App\Scopes\CommonController;
|
use App\Scopes\CommonController;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -13,13 +11,12 @@ class UserDetailGetController extends CommonController
|
|||||||
{
|
{
|
||||||
public function __invoke(int $id, Request $request): JsonResponse
|
public function __invoke(int $id, Request $request): JsonResponse
|
||||||
{
|
{
|
||||||
$user = User::findOrFail($id);
|
$user = $this->adminUsers->findById($id);
|
||||||
|
|
||||||
$userData = $user->toArray();
|
$userData = $user->toArray();
|
||||||
|
|
||||||
unset($userData['password'], $userData['remember_token'], $userData['activation_token'], $userData['activation_token_expires_at']);
|
unset($userData['password'], $userData['remember_token'], $userData['activation_token'], $userData['activation_token_expires_at']);
|
||||||
|
|
||||||
$tenantNames = Tenant::pluck('name', 'slug');
|
$tenantNames = $this->adminTenants->getTenantNames();
|
||||||
$userData['nicename'] = $user->getNicename();
|
$userData['nicename'] = $user->getNicename();
|
||||||
$userData['fullname'] = $user->getFullName();
|
$userData['fullname'] = $user->getFullName();
|
||||||
$userData['local_group_name'] = $tenantNames[$user->local_group] ?? $user->local_group;
|
$userData['local_group_name'] = $tenantNames[$user->local_group] ?? $user->local_group;
|
||||||
@@ -29,7 +26,7 @@ class UserDetailGetController extends CommonController
|
|||||||
'isOwnUser' => auth()->id() === $user->id,
|
'isOwnUser' => auth()->id() === $user->id,
|
||||||
'isLvTenant' => $this->tenant->slug === 'lv',
|
'isLvTenant' => $this->tenant->slug === 'lv',
|
||||||
'userRoles' => UserRole::all()->map(fn($role) => ['slug' => $role->slug, 'name' => $role->name]),
|
'userRoles' => UserRole::all()->map(fn($role) => ['slug' => $role->slug, 'name' => $role->name]),
|
||||||
'localGroups' => Tenant::where('is_active_local_group', true)->get()->map(fn($t) => ['slug' => $t->slug, 'name' => $t->name]),
|
'localGroups' => $this->adminTenants->getActiveLocalGroups()->map(fn($t) => ['slug' => $t->slug, 'name' => $t->name]),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,6 @@
|
|||||||
|
|
||||||
namespace App\Domains\Admin\Controllers;
|
namespace App\Domains\Admin\Controllers;
|
||||||
|
|
||||||
use App\Models\Tenant;
|
|
||||||
use App\Models\User;
|
|
||||||
use App\Scopes\CommonController;
|
use App\Scopes\CommonController;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -12,18 +10,10 @@ class UserListApiController extends CommonController
|
|||||||
{
|
{
|
||||||
public function __invoke(Request $request): JsonResponse
|
public function __invoke(Request $request): JsonResponse
|
||||||
{
|
{
|
||||||
$tenantNames = Tenant::pluck('name', 'slug');
|
$tenantNames = $this->adminTenants->getTenantNames();
|
||||||
|
$users = $this->adminUsers->getListForTenant($this->tenant->slug);
|
||||||
|
|
||||||
$query = User::query();
|
$mapped = $users->map(function ($user) use ($tenantNames) {
|
||||||
|
|
||||||
if ($this->tenant->slug === 'lv') {
|
|
||||||
$query->orderBy('lastname')->orderBy('firstname');
|
|
||||||
} else {
|
|
||||||
$query->where('local_group', $this->tenant->slug)
|
|
||||||
->orderBy('lastname')->orderBy('firstname');
|
|
||||||
}
|
|
||||||
|
|
||||||
$users = $query->get()->map(function ($user) use ($tenantNames) {
|
|
||||||
return [
|
return [
|
||||||
'id' => $user->id,
|
'id' => $user->id,
|
||||||
'firstname' => $user->firstname,
|
'firstname' => $user->firstname,
|
||||||
@@ -35,6 +25,6 @@ class UserListApiController extends CommonController
|
|||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
return response()->json(['users' => $users]);
|
return response()->json(['users' => $mapped]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
namespace App\Domains\Admin\Controllers;
|
namespace App\Domains\Admin\Controllers;
|
||||||
|
|
||||||
use App\Domains\UserManagement\Actions\GenerateActivationToken\GenerateActivationTokenCommand;
|
use App\Domains\UserManagement\Actions\GenerateActivationToken\GenerateActivationTokenCommand;
|
||||||
use App\Models\User;
|
|
||||||
use App\Scopes\CommonController;
|
use App\Scopes\CommonController;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -12,7 +11,7 @@ class UserResetPasswordController extends CommonController
|
|||||||
{
|
{
|
||||||
public function __invoke(int $id, Request $request): JsonResponse
|
public function __invoke(int $id, Request $request): JsonResponse
|
||||||
{
|
{
|
||||||
$user = User::findOrFail($id);
|
$user = $this->adminUsers->findById($id);
|
||||||
|
|
||||||
if (!$user->email) {
|
if (!$user->email) {
|
||||||
return response()->json([
|
return response()->json([
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
namespace App\Domains\Admin\Controllers;
|
namespace App\Domains\Admin\Controllers;
|
||||||
|
|
||||||
use App\Models\User;
|
use App\Domains\Admin\Actions\ToggleUserActive\ToggleUserActiveAction;
|
||||||
|
use App\Domains\Admin\Actions\ToggleUserActive\ToggleUserActiveRequest;
|
||||||
use App\Scopes\CommonController;
|
use App\Scopes\CommonController;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -11,23 +12,19 @@ class UserToggleActiveController extends CommonController
|
|||||||
{
|
{
|
||||||
public function __invoke(int $id, Request $request): JsonResponse
|
public function __invoke(int $id, Request $request): JsonResponse
|
||||||
{
|
{
|
||||||
$user = User::findOrFail($id);
|
$user = $this->adminUsers->findById($id);
|
||||||
|
|
||||||
if (auth()->id() === $user->id) {
|
$action = new ToggleUserActiveAction(new ToggleUserActiveRequest(
|
||||||
return response()->json([
|
user: $user,
|
||||||
'status' => 'error',
|
currentUserId: auth()->id(),
|
||||||
'message' => 'Du kannst dich nicht selbst deaktivieren.',
|
));
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
$user->update(['active' => !$user->active]);
|
$response = $action->execute();
|
||||||
|
|
||||||
$status = $user->active ? 'aktiviert' : 'deaktiviert';
|
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'status' => 'success',
|
'status' => $response->success ? 'success' : 'error',
|
||||||
'message' => 'Benutzer*in wurde ' . $status . '.',
|
'message' => $response->message,
|
||||||
'active' => $user->active,
|
'active' => $response->active,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
namespace App\Domains\Admin\Controllers;
|
namespace App\Domains\Admin\Controllers;
|
||||||
|
|
||||||
use App\Models\User;
|
use App\Domains\Admin\Actions\UpdateUser\UpdateUserAction;
|
||||||
|
use App\Domains\Admin\Actions\UpdateUser\UpdateUserRequest;
|
||||||
use App\Scopes\CommonController;
|
use App\Scopes\CommonController;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -11,32 +12,20 @@ class UserUpdateController extends CommonController
|
|||||||
{
|
{
|
||||||
public function __invoke(int $id, Request $request): JsonResponse
|
public function __invoke(int $id, Request $request): JsonResponse
|
||||||
{
|
{
|
||||||
$user = User::findOrFail($id);
|
$user = $this->adminUsers->findById($id);
|
||||||
$isOwnUser = auth()->id() === $user->id;
|
|
||||||
$isLvTenant = $this->tenant->slug === 'lv';
|
|
||||||
|
|
||||||
$allowedFields = [
|
$action = new UpdateUserAction(new UpdateUserRequest(
|
||||||
'firstname', 'lastname', 'nickname', 'email', 'phone', 'birthday',
|
user: $user,
|
||||||
'membership_id', 'address_1', 'address_2', 'postcode', 'city',
|
data: $request->all(),
|
||||||
'eating_habits', 'swimming_permission', 'first_aid_permission',
|
isOwnUser: auth()->id() === $user->id,
|
||||||
'bank_account_owner', 'bank_account_iban',
|
isLvTenant: $this->tenant->slug === 'lv',
|
||||||
'medications', 'allergies', 'intolerances',
|
));
|
||||||
'user_role_local_group',
|
|
||||||
];
|
|
||||||
|
|
||||||
if ($isLvTenant) {
|
$response = $action->execute();
|
||||||
$allowedFields[] = 'local_group';
|
|
||||||
if (!$isOwnUser) {
|
|
||||||
$allowedFields[] = 'user_role_main';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$data = $request->only($allowedFields);
|
|
||||||
$user->update($data);
|
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'status' => 'success',
|
'status' => $response->success ? 'success' : 'error',
|
||||||
'message' => 'Benutzerdaten wurden gespeichert.',
|
'message' => $response->message,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Domains\Admin\Repositories;
|
||||||
|
|
||||||
|
use App\Models\Tenant;
|
||||||
|
use Illuminate\Database\Eloquent\Collection;
|
||||||
|
use Illuminate\Support\Collection as SupportCollection;
|
||||||
|
|
||||||
|
class AdminTenantRepository
|
||||||
|
{
|
||||||
|
public function findBySlug(string $slug): Tenant
|
||||||
|
{
|
||||||
|
return Tenant::where('slug', $slug)->firstOrFail();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getActiveTenants(): Collection
|
||||||
|
{
|
||||||
|
return Tenant::where('has_active_instance', true)->get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getTenantNames(): SupportCollection
|
||||||
|
{
|
||||||
|
return Tenant::pluck('name', 'slug');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getActiveLocalGroups(): Collection
|
||||||
|
{
|
||||||
|
return Tenant::where('is_active_local_group', true)->get();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Domains\Admin\Repositories;
|
||||||
|
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Database\Eloquent\Collection;
|
||||||
|
|
||||||
|
class AdminUserRepository
|
||||||
|
{
|
||||||
|
public function findById(int $id): User
|
||||||
|
{
|
||||||
|
return User::findOrFail($id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getListForTenant(string $tenantSlug): Collection
|
||||||
|
{
|
||||||
|
$query = User::query();
|
||||||
|
|
||||||
|
if ($tenantSlug !== 'lv') {
|
||||||
|
$query->where('local_group', $tenantSlug);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $query->orderBy('lastname')->orderBy('firstname')->get();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
namespace App\Scopes;
|
namespace App\Scopes;
|
||||||
|
|
||||||
|
use App\Domains\Admin\Repositories\AdminTenantRepository;
|
||||||
|
use App\Domains\Admin\Repositories\AdminUserRepository;
|
||||||
use App\Models\Tenant;
|
use App\Models\Tenant;
|
||||||
use App\Providers\AuthCheckProvider;
|
use App\Providers\AuthCheckProvider;
|
||||||
use App\Repositories\CostUnitRepository;
|
use App\Repositories\CostUnitRepository;
|
||||||
@@ -23,6 +25,8 @@ abstract class CommonController {
|
|||||||
protected EventRepository $events;
|
protected EventRepository $events;
|
||||||
protected EventParticipantRepository $eventParticipants;
|
protected EventParticipantRepository $eventParticipants;
|
||||||
protected EstimatesRepository $estimates;
|
protected EstimatesRepository $estimates;
|
||||||
|
protected AdminUserRepository $adminUsers;
|
||||||
|
protected AdminTenantRepository $adminTenants;
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
$this->tenant = app('tenant');
|
$this->tenant = app('tenant');
|
||||||
@@ -33,6 +37,8 @@ abstract class CommonController {
|
|||||||
$this->events = new EventRepository();
|
$this->events = new EventRepository();
|
||||||
$this->eventParticipants = new EventParticipantRepository();
|
$this->eventParticipants = new EventParticipantRepository();
|
||||||
$this->estimates = new EstimatesRepository();
|
$this->estimates = new EstimatesRepository();
|
||||||
|
$this->adminUsers = new AdminUserRepository();
|
||||||
|
$this->adminTenants = new AdminTenantRepository();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function checkAuth() {
|
protected function checkAuth() {
|
||||||
|
|||||||
Reference in New Issue
Block a user