Chaos-Events und Voranmeldungen
This commit is contained in:
@@ -25,7 +25,7 @@ class BlogController extends Controller
|
||||
$blog->save();
|
||||
return ['messageStatus' => 'success', 'errorMessage' => ''];
|
||||
} catch (\Illuminate\Database\QueryException $e) {
|
||||
return ['messageStatus' => 'danger', 'errorMessage' => $e->getMessage()];
|
||||
return ['messageStatus' => 'danger', 'errorMessage' => __("controller_messages.BlogController.error_occurred", ["error" => $e->getMessage()])];
|
||||
}
|
||||
}
|
||||
abort(404);
|
||||
@@ -43,7 +43,7 @@ class BlogController extends Controller
|
||||
$blog->save();
|
||||
return ['messageStatus' => 'success', 'errorMessage' => ''];
|
||||
} catch (\Illuminate\Database\QueryException $e) {
|
||||
return ['messageStatus' => 'failure', 'errorMessage' => $e->getMessage()];
|
||||
return ['messageStatus' => 'failure', 'errorMessage' => __("controller_messages.BlogController.error_occurred", ["error" => $e->getMessage()])];
|
||||
}
|
||||
}
|
||||
abort(404);
|
||||
@@ -58,7 +58,7 @@ class BlogController extends Controller
|
||||
}
|
||||
return ['messageStatus' => 'success', 'errorMessage' => ''];
|
||||
} catch(\Exception $e){
|
||||
return ['messageStatus' => 'failure', 'errorMessage' => $e->getMessage()];
|
||||
return ['messageStatus' => 'failure', 'errorMessage' => __("controller_messages.BlogController.error_occurred", ["error" => $e->getMessage()])];
|
||||
}
|
||||
}
|
||||
abort(404);
|
||||
|
||||
@@ -16,7 +16,7 @@ class LoginController extends Controller
|
||||
// messageStatus success|failure|not permitted
|
||||
|
||||
|
||||
$json = ["messageStatus" => "failure", "errorMessage" => "idk"];
|
||||
$json = ["messageStatus" => "failure", "errorMessage" => __("controller_messages.LoginController.unknown_error")];
|
||||
|
||||
$mail = $request->input('mail');
|
||||
$username = $request->input('username');
|
||||
@@ -24,14 +24,14 @@ class LoginController extends Controller
|
||||
$token = $request->input('token');
|
||||
|
||||
if(preg_match('/@c3gov\.de$/', $mail) != 1){
|
||||
return ["messageStatus" => "not permitted", "errorMessage" => ""];
|
||||
return ["messageStatus" => "not permitted", "errorMessage" => __("controller_messages.LoginController.not_permitted")];
|
||||
}
|
||||
|
||||
$rt = RegisterToken::where('token', $token)->first();
|
||||
if($rt) {
|
||||
$u = User::whereEmail($mail)->first();
|
||||
if($u) {
|
||||
return ["messageStatus" => "failure", "errorMessage" => "Diese elektronische Postadresse wird bereits verwendet."];
|
||||
return ["messageStatus" => "failure", "errorMessage" => __("controller_messages.LoginController.email_in_use")];
|
||||
}
|
||||
try {
|
||||
$u = new User();
|
||||
@@ -43,10 +43,10 @@ class LoginController extends Controller
|
||||
|
||||
$rt->delete();
|
||||
} catch (\Exception $e) {
|
||||
return ["messageStatus" => "failure", "errorMessage" => $e->getMessage()];
|
||||
return ["messageStatus" => "failure", "errorMessage" => __("controller_messages.LoginController.unknown_error_with_details", ["error" => $e->getMessage()])];
|
||||
}
|
||||
} else {
|
||||
return ["messageStatus" => "failure", "errorMessage" => "Machen Sie die Musik aus."];
|
||||
return ["messageStatus" => "failure", "errorMessage" => __("controller_messages.LoginController.invalid_token")];
|
||||
}
|
||||
|
||||
return ["messageStatus" => "success", "errorMessage" => ""];
|
||||
@@ -64,10 +64,10 @@ class LoginController extends Controller
|
||||
Auth::login($u);
|
||||
return ["messageStatus" => "success", "errorMessage" => ""];
|
||||
} else {
|
||||
return ["messageStatus" => "failure", "errorMessage" => "Falsch. Einfach nur falsch."];
|
||||
return ["messageStatus" => "failure", "errorMessage" => __("controller_messages.LoginController.wrong_credentials")];
|
||||
}
|
||||
} else {
|
||||
return ["messageStatus" => "failure", "errorMessage" => "Falsch. Einfach nur falsch."];
|
||||
return ["messageStatus" => "failure", "errorMessage" => __("controller_messages.LoginController.wrong_credentials")];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
86
app/Http/Controllers/PreApplicationController.php
Normal file
86
app/Http/Controllers/PreApplicationController.php
Normal file
@@ -0,0 +1,86 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App;
|
||||
use App\Mail\PreApplicationMail;
|
||||
use App\Models\ChaosEvents;
|
||||
use App\Models\PreApplications;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
use Log;
|
||||
use Nette\Utils\Random;
|
||||
|
||||
class PreApplicationController extends Controller
|
||||
{
|
||||
public function send(Request $request){
|
||||
$event = $request->input('event');
|
||||
|
||||
$ce = ChaosEvents::where('id', $event)->where('to_date', '>=', now())->first();
|
||||
if($ce){
|
||||
|
||||
$passport_type = $request->input('passport_type');
|
||||
if(!in_array($passport_type, ['d', 'k'])){
|
||||
return ["messageStatus" => "failure", "errorMessage" => __("controller_messages.PreApplicationController.wrong_passport_type")];
|
||||
}
|
||||
|
||||
$first_name = $request->input('first_name');
|
||||
$last_name = $request->input('last_name');
|
||||
$location = $request->input('location');
|
||||
|
||||
$email = $request->input('mail');
|
||||
|
||||
if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
|
||||
return ["messageStatus" => "failure", "errorMessage" => __("controller_messages.PreApplicationController.invalid_email_format")];
|
||||
}
|
||||
|
||||
switch($passport_type){
|
||||
case 'd':
|
||||
$max_characters = 17;
|
||||
break;
|
||||
case 'k':
|
||||
$max_characters = 25;
|
||||
break;
|
||||
default:
|
||||
$max_characters = 0;
|
||||
}
|
||||
|
||||
$fn = preg_match('/^[a-zA-Z0-9\s]{1,' . $max_characters . '}$/', $first_name);
|
||||
$ln = preg_match('/^[a-zA-Z0-9\s]{,' . $max_characters . '}$/', $last_name);
|
||||
$loc = preg_match('/^[a-zA-Z0-9\s]{,' . $max_characters . '}$/', $location);
|
||||
|
||||
//Log::debug('fn: ' . var_export($fn, true) . ' ln: ' . var_export($ln, true) . ' loc: ' . var_export($loc, true) . '');
|
||||
|
||||
if($fn && $ln && $loc){
|
||||
|
||||
$free_reference_number = false;
|
||||
while(!$free_reference_number){
|
||||
$reference_number = $ce->shortname . '-' . strtoupper($passport_type) . '-' . Random::generate(4, "0-9") . '-' . Random::generate(4, "0-9") . '-' . Random::generate(4, "0-9");
|
||||
$free_reference_number = !PreApplications::where('reference_number', $reference_number)->exists();
|
||||
}
|
||||
|
||||
try{
|
||||
$pa = new PreApplications();
|
||||
$pa->first_name = $first_name;
|
||||
$pa->last_name = $last_name;
|
||||
$pa->location = $location;
|
||||
$pa->passport_type = $passport_type;
|
||||
$pa->reference_number = $reference_number;
|
||||
$pa->event_id = $event;
|
||||
$pa->email = $email;
|
||||
$pa->save();
|
||||
} catch(\Exception $e){
|
||||
return ["messageStatus" => "failure", "errorMessage" => __("controller_messages.PreApplicationController.already_submitted")];
|
||||
}
|
||||
|
||||
Mail::to($email)
|
||||
->send(new PreApplicationMail($pa, App::getLocale()));
|
||||
|
||||
return ["messageStatus" => "success", "errorMessage" => __('controller_messages.PreApplicationController.success')];
|
||||
} else {
|
||||
return ["messageStatus" => "failure", "errorMessage" => __("controller_messages.PreApplicationController.invalid_characters")];
|
||||
}
|
||||
}
|
||||
return ["messageStatus" => "failure", "errorMessage" => __("controller_messages.PreApplicationController.event_not_found")];
|
||||
}
|
||||
}
|
||||
@@ -19,7 +19,7 @@ class TickerController extends Controller
|
||||
}
|
||||
return ["messageStatus" => "success", "errorMessage" => ""];
|
||||
} catch(\Exception $e){
|
||||
return ["messageStatus" => "failure", "errorMessage" => $e->getMessage()];
|
||||
return ["messageStatus" => "failure", "errorMessage" => __("controller_messages.TickerController.error_occurred", ["error" => $e->getMessage()])];
|
||||
}
|
||||
|
||||
}
|
||||
@@ -38,7 +38,7 @@ class TickerController extends Controller
|
||||
$ticker->save();
|
||||
return ["messageStatus" => "success", "errorMessage" => ""];
|
||||
} catch(\Exception $e){
|
||||
return ["messageStatus" => "failure", "errorMessage" => $e->getMessage()];
|
||||
return ["messageStatus" => "failure", "errorMessage" => __("controller_messages.TickerController.error_occurred", ["error" => $e->getMessage()])];
|
||||
}
|
||||
}
|
||||
abort(404);
|
||||
|
||||
66
app/Mail/PreApplicationMail.php
Normal file
66
app/Mail/PreApplicationMail.php
Normal file
@@ -0,0 +1,66 @@
|
||||
<?php
|
||||
|
||||
namespace App\Mail;
|
||||
|
||||
use AllowDynamicProperties;
|
||||
use App;
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Mail\Mailable;
|
||||
use Illuminate\Mail\Mailables\Attachment;
|
||||
use Illuminate\Mail\Mailables\Content;
|
||||
use Illuminate\Mail\Mailables\Envelope;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
|
||||
class PreApplicationMail extends Mailable
|
||||
{
|
||||
use Queueable, SerializesModels;
|
||||
|
||||
/**
|
||||
* Create a new message instance.
|
||||
*/
|
||||
public function __construct(protected App\Models\PreApplications $pa, protected string $lang = 'de')
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the message envelope.
|
||||
*/
|
||||
public function envelope(): Envelope
|
||||
{
|
||||
return new Envelope(
|
||||
subject: __('mail.preapplication.subject'),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the message content definition.
|
||||
*/
|
||||
public function content(): Content
|
||||
{
|
||||
App::setLocale($this->lang);
|
||||
return new Content(
|
||||
view: 'mail.preapplication',
|
||||
with: ['pa' => $this->pa],
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the attachments for the message.
|
||||
*
|
||||
* @return array<int, Attachment>
|
||||
*/
|
||||
public function attachments(): array
|
||||
{
|
||||
$lang = match (App::getLocale()) {
|
||||
'de' => 'dk',
|
||||
'en' => 'ek',
|
||||
default => 'dk',
|
||||
};
|
||||
return [
|
||||
Attachment::fromPath(public_path('Dokumente/c3gov_fb5' . $lang . '.pdf'))
|
||||
->withMime('application/pdf'),
|
||||
];
|
||||
}
|
||||
}
|
||||
18
app/Models/ChaosEvents.php
Normal file
18
app/Models/ChaosEvents.php
Normal file
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class ChaosEvents extends Model
|
||||
{
|
||||
protected $table = 'chaos_events';
|
||||
|
||||
public function preApplications() {
|
||||
return $this->hasMany('App\Models\PreApplications', 'event_id');
|
||||
}
|
||||
|
||||
public static function getActiveEvents(){
|
||||
return self::where('to_date', '>=', now())->where('from_date', '<=', now())->get();
|
||||
}
|
||||
}
|
||||
15
app/Models/PreApplications.php
Normal file
15
app/Models/PreApplications.php
Normal file
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class PreApplications extends Model
|
||||
{
|
||||
protected $table = 'pre_applications';
|
||||
|
||||
public function event(): \Illuminate\Database\Eloquent\Relations\BelongsTo
|
||||
{
|
||||
return $this->belongsTo('App\Models\ChaosEvents','event_id');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user