feat: Added Imprint and Privacy Page & Links

This commit is contained in:
IceToast 2022-12-22 22:30:09 +01:00
parent 5d18b36083
commit 3edff8f6fc
11 changed files with 811 additions and 354 deletions

View file

@ -1,121 +1,137 @@
@extends('layouts.app')
@section('content')
<body class="hold-transition dark-mode login-page">
<div class="login-box">
<!-- /.login-logo -->
<div class="card card-outline card-primary">
<div class="card-header text-center">
<a href="{{route('welcome')}}" class="h1"><b class="mr-1">{{config('app.name', 'Laravel')}}</b></a>
@if(config("SETTINGS::SYSTEM:ENABLE_LOGIN_LOGO"))
<img
src="{{ \Illuminate\Support\Facades\Storage::disk('public')->exists('logo.png')? asset('storage/logo.png'): asset('images/controlpanel_logo.png') }}"
alt="{{ config('app.name', 'Controlpanel.gg') }} Logo"
style="opacity: .8;max-width:100%">
@endif
</div>
<div class="card-body">
<p class="login-box-msg">{{__('Sign in to start your session')}}</p>
<div class="login-box">
<!-- /.login-logo -->
<div class="card card-outline card-primary">
<div class="card-header text-center">
<a href="{{ route('welcome') }}" class="h1"><b
class="mr-1">{{ config('app.name', 'Laravel') }}</b></a>
@if (config('SETTINGS::SYSTEM:ENABLE_LOGIN_LOGO'))
<img src="{{ \Illuminate\Support\Facades\Storage::disk('public')->exists('logo.png') ? asset('storage/logo.png') : asset('images/controlpanel_logo.png') }}"
alt="{{ config('app.name', 'Controlpanel.gg') }} Logo" style="opacity: .8;max-width:100%">
@endif
</div>
<div class="card-body">
<p class="login-box-msg">{{ __('Sign in to start your session') }}</p>
@if (session('message'))
<div class="alert alert-danger">{{ session('message') }}</div>
@endif
<form action="{{route('login')}}" method="post">
@csrf
@if(Session::has('error'))
<span class="text-danger" role="alert">
<small><strong>{{Session::get('error')}}</strong></small>
</span>
@if (session('message'))
<div class="alert alert-danger">{{ session('message') }}</div>
@endif
<div class="form-group">
<div class="input-group mb-3">
<input type="email" name="email" class="form-control @error('email') is-invalid @enderror" placeholder="{{__('Email')}}">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-envelope"></span>
<form action="{{ route('login') }}" method="post">
@csrf
@if (Session::has('error'))
<span class="text-danger" role="alert">
<small><strong>{{ Session::get('error') }}</strong></small>
</span>
@endif
<div class="form-group">
<div class="input-group mb-3">
<input type="email" name="email"
class="form-control @error('email') is-invalid @enderror"
placeholder="{{ __('Email') }}">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-envelope"></span>
</div>
</div>
</div>
@error('email')
<span class="text-danger" role="alert">
<small><strong>{{ $message }}</strong></small>
</span>
@enderror
</div>
<div class="form-group">
<div class="input-group mb-3">
<input type="password" name="password"
class="form-control @error('password') is-invalid @enderror"
placeholder="{{ __('Password') }}">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-lock"></span>
</div>
</div>
</div>
@error('password')
<span class="text-danger" role="alert">
<small><strong>{{ $message }}</strong></small>
</span>
@enderror
</div>
@if (config('SETTINGS::RECAPTCHA:ENABLED') == 'true')
<div class="input-group mb-3">
{!! htmlFormSnippet() !!}
@error('g-recaptcha-response')
<span class="text-danger" role="alert">
<small><strong>{{ $message }}</strong></small>
</span>
@enderror
</div>
@endif
<div class="row">
<div class="col-8">
<div class="icheck-primary">
<input type="checkbox" name="remember" id="remember"
{{ old('remember') ? 'checked' : '' }}>
<label for="remember">
{{ __('Remember Me') }}
</label>
</div>
</div>
</div>
@error('email')
<span class="text-danger" role="alert">
<small><strong>{{ $message }}</strong></small>
</span>
@enderror
</div>
<div class="form-group">
<div class="input-group mb-3">
<input type="password" name="password" class="form-control @error('password') is-invalid @enderror"
placeholder="{{__('Password')}}">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-lock"></span>
</div>
<!-- /.col -->
<div class="col-4">
<button type="submit" class="btn btn-primary btn-block">{{ __('Sign In') }}</button>
</div>
<!-- /.col -->
</div>
@error('password')
<span class="text-danger" role="alert">
<small><strong>{{ $message }}</strong></small>
</span>
@enderror
</div>
@if (config('SETTINGS::RECAPTCHA:ENABLED') == 'true')
<div class="input-group mb-3">
{!! htmlFormSnippet() !!}
@error('g-recaptcha-response')
<span class="text-danger" role="alert">
<small><strong>{{ $message }}</strong></small>
</span>
@enderror
</div>
@endif
</form>
<div class="row">
<div class="col-8">
<div class="icheck-primary">
<input type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}>
<label for="remember">
{{__('Remember Me')}}
</label>
</div>
</div>
<!-- /.col -->
<div class="col-4">
<button type="submit" class="btn btn-primary btn-block">{{__('Sign In')}}</button>
</div>
<!-- /.col -->
</div>
</form>
{{-- <div class="social-auth-links text-center mt-2 mb-3"> --}}
{{-- <a href="#" class="btn btn-block btn-primary"> --}}
{{-- <i class="fab fa-facebook mr-2"></i> Sign in using Facebook --}}
{{-- </a> --}}
{{-- <a href="#" class="btn btn-block btn-danger"> --}}
{{-- <i class="fab fa-google-plus mr-2"></i> Sign in using Google+ --}}
{{-- </a> --}}
{{-- </div> --}}
<!-- /.social-auth-links -->
{{-- <div class="social-auth-links text-center mt-2 mb-3">--}}
{{-- <a href="#" class="btn btn-block btn-primary">--}}
{{-- <i class="fab fa-facebook mr-2"></i> Sign in using Facebook--}}
{{-- </a>--}}
{{-- <a href="#" class="btn btn-block btn-danger">--}}
{{-- <i class="fab fa-google-plus mr-2"></i> Sign in using Google+--}}
{{-- </a>--}}
{{-- </div>--}}
<!-- /.social-auth-links -->
<p class="mb-1">
@if (Route::has('password.request'))
<a class="" href="{{ route('password.request') }}">
{{ __('Forgot Your Password?') }}
</a>
@endif
</p>
<p class="mb-0">
<a href="{{route('register')}}" class="text-center">{{__('Register a new membership')}}</a>
</p>
<p class="mb-1">
@if (Route::has('password.request'))
<a class="" href="{{ route('password.request') }}">
{{ __('Forgot Your Password?') }}
</a>
@endif
</p>
<p class="mb-0">
<a href="{{ route('register') }}" class="text-center">{{ __('Register a new membership') }}</a>
</p>
</div>
<!-- /.card-body -->
</div>
<!-- /.card -->
</div>
<!-- /.login-box -->
{{-- imprint and privacy policy --}}
<div class="fixed-bottom ">
<div class="container text-center">
@if (config('SETTINGS::SYSTEM:SHOW_IMPRINT'))
<a href="{{ route('imprint') }}"><strong>{{ __('Imprint') }}</strong></a> |
@endif
@if (config('SETTINGS::SYSTEM:SHOW_PRIVACY'))
<a href="{{ route('privacy') }}"><strong>{{ __('Privacy') }}</strong></a>
@endif
</div>
<!-- /.card-body -->
</div>
<!-- /.card -->
</div>
<!-- /.login-box -->
</body>
@endsection

View file

@ -1,51 +1,69 @@
@extends('layouts.app')
@section('content')
<body class="hold-transition dark-mode login-page">
<div class="login-box">
<div class="card card-outline card-primary">
<div class="card-header text-center">
<a href="{{route('welcome')}}" class="h1"><b class="mr-1">{{config('app.name', 'Laravel')}}</b></a>
</div>
<div class="card-body">
@if (session('status'))
<div class="alert alert-success" role="alert">
{{ session('status') }}
</div>
@endif
<p class="login-box-msg">{{__('You forgot your password? Here you can easily retrieve a new password.')}}</p>
<form method="POST" action="{{ route('password.email') }}">
@csrf
<div class="login-box">
<div class="card card-outline card-primary">
<div class="card-header text-center">
<a href="{{ route('welcome') }}" class="h1"><b
class="mr-1">{{ config('app.name', 'Laravel') }}</b></a>
</div>
<div class="card-body">
@if (session('status'))
<div class="alert alert-success" role="alert">
{{ session('status') }}
</div>
@endif
<p class="login-box-msg">
{{ __('You forgot your password? Here you can easily retrieve a new password.') }}</p>
<form method="POST" action="{{ route('password.email') }}">
@csrf
<div class="input-group mb-3">
<input type="email" class="form-control @error('email') is-invalid @enderror" placeholder="{{__('Email')}}" name="email" value="{{ old('email') }}" required autocomplete="email" autofocus>
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-envelope"></span>
<div class="input-group mb-3">
<input type="email" class="form-control @error('email') is-invalid @enderror"
placeholder="{{ __('Email') }}" name="email" value="{{ old('email') }}" required
autocomplete="email" autofocus>
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-envelope"></span>
</div>
</div>
@error('email')
<span class="text-danger" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
@error('email')
<span class="text-danger" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="row">
<div class="col-12">
<button type="submit" class="btn btn-primary btn-block">{{__('Request new password')}}</button>
<div class="row">
<div class="col-12">
<button type="submit"
class="btn btn-primary btn-block">{{ __('Request new password') }}</button>
</div>
<!-- /.col -->
</div>
<!-- /.col -->
</div>
</form>
<p class="mt-3 mb-1">
<a href="{{route('login')}}">{{__('Login')}}</a>
</p>
</form>
<p class="mt-3 mb-1">
<a href="{{ route('login') }}">{{ __('Login') }}</a>
</p>
</div>
<!-- /.login-card-body -->
</div>
</div>
<!-- /.login-box -->
{{-- imprint and privacy policy --}}
<div class="fixed-bottom ">
<div class="container text-center">
@if (config('SETTINGS::SYSTEM:SHOW_IMPRINT'))
<a href="{{ route('imprint') }}"><strong>{{ __('Imprint') }}</strong></a> |
@endif
@if (config('SETTINGS::SYSTEM:SHOW_PRIVACY'))
<a href="{{ route('privacy') }}"><strong>{{ __('Privacy') }}</strong></a>
@endif
</div>
<!-- /.login-card-body -->
</div>
</div>
<!-- /.login-box -->
</body>
@endsection

View file

@ -1,74 +1,93 @@
@extends('layouts.app')
@section('content')
<body class="hold-transition dark-mode login-page">
<div class="login-box">
<div class="card card-outline card-primary">
<div class="card-header text-center">
<a href="{{route('welcome')}}" class="h1"><b class="mr-1">{{config('app.name', 'Laravel')}}</b></a>
<div class="login-box">
<div class="card card-outline card-primary">
<div class="card-header text-center">
<a href="{{ route('welcome') }}" class="h1"><b
class="mr-1">{{ config('app.name', 'Laravel') }}</b></a>
</div>
<div class="card-body">
<p class="login-box-msg">
{{ __('You are only one step a way from your new password, recover your password now.') }}</p>
<form method="POST" action="{{ route('password.update') }}">
@csrf
<input type="hidden" name="token" value="{{ $token }}">
<div class="input-group mb-3">
<input type="email" name="email" class="form-control @error('email') is-invalid @enderror"
placeholder="{{ __('Email') }}">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-envelope"></span>
</div>
</div>
@error('email')
<span class="text-danger" role="alert">
<small><strong>{{ $message }}</strong></small>
</span>
@enderror
</div>
<div class="input-group mb-3">
<input type="password" class="form-control @error('password') is-invalid @enderror"
placeholder="{{ __('Password') }}" name="password" required autocomplete="new-password">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-lock"></span>
</div>
</div>
@error('password')
<span class="text-danger" role="alert">
<small><strong>{{ $message }}</strong></small>
</span>
@enderror
</div>
<div class="input-group mb-3">
<input type="password" class="form-control" name="password_confirmation"
placeholder="{{ __('Retype password') }}" required autocomplete="new-password">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-lock"></span>
</div>
</div>
</div>
<div class="row">
<div class="col-12">
<button type="submit"
class="btn btn-primary btn-block">{{ __('Change password') }}</button>
</div>
<!-- /.col -->
</div>
</form>
<p class="mt-3 mb-1">
<a href="{{ route('login') }}">Login</a>
</p>
</div>
<!-- /.login-card-body -->
</div>
</div>
<!-- /.login-box -->
{{-- imprint and privacy policy --}}
<div class="fixed-bottom">
<div class="container text-center">
@if (config('SETTINGS::SYSTEM:SHOW_IMPRINT'))
<a href="{{ route('imprint') }}"><strong>{{ __('Imprint') }}</strong></a> |
@endif
@if (config('SETTINGS::SYSTEM:SHOW_PRIVACY'))
<a href="{{ route('privacy') }}"><strong>{{ __('Privacy') }}</strong></a>
@endif
</div>
<div class="card-body">
<p class="login-box-msg">{{__('You are only one step a way from your new password, recover your password now.')}}</p>
<form method="POST" action="{{ route('password.update') }}">
@csrf
<input type="hidden" name="token" value="{{ $token }}">
<div class="input-group mb-3">
<input type="email" name="email" class="form-control @error('email') is-invalid @enderror" placeholder="{{__('Email')}}">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-envelope"></span>
</div>
</div>
@error('email')
<span class="text-danger" role="alert">
<small><strong>{{ $message }}</strong></small>
</span>
@enderror
</div>
<div class="input-group mb-3">
<input type="password" class="form-control @error('password') is-invalid @enderror" placeholder="{{__('Password')}}" name="password" required autocomplete="new-password">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-lock"></span>
</div>
</div>
@error('password')
<span class="text-danger" role="alert">
<small><strong>{{ $message }}</strong></small>
</span>
@enderror
</div>
<div class="input-group mb-3">
<input type="password" class="form-control" name="password_confirmation" placeholder="{{__('Retype password')}}" required autocomplete="new-password">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-lock"></span>
</div>
</div>
</div>
<div class="row">
<div class="col-12">
<button type="submit" class="btn btn-primary btn-block">{{__('Change password')}}</button>
</div>
<!-- /.col -->
</div>
</form>
<p class="mt-3 mb-1">
<a href="{{route('login')}}">Login</a>
</p>
</div>
<!-- /.login-card-body -->
</div>
</div>
<!-- /.login-box -->
</body>
@endsection

View file

@ -1,50 +1,53 @@
@extends('layouts.app')
@section('content')
<body class="hold-transition dark-mode register-page">
<div class="register-box">
<div class="card card-outline card-primary">
<div class="card-header text-center">
<a href="{{route('welcome')}}" class="h1"><b class="mr-1">{{config('app.name', 'Laravel')}}</b></a>
</div>
<div class="card-body">
@if(!config('SETTINGS::SYSTEM:CREATION_OF_NEW_USERS'))
<div class="register-box">
<div class="card card-outline card-primary">
<div class="card-header text-center">
<a href="{{ route('welcome') }}" class="h1"><b
class="mr-1">{{ config('app.name', 'Laravel') }}</b></a>
</div>
<div class="card-body">
@if (!config('SETTINGS::SYSTEM:CREATION_OF_NEW_USERS'))
<div class="alert alert-warning p-2 m-2">
<h5><i class="icon fas fa-exclamation-circle"></i> {{ __('Warning!') }}</h5>
{{ __('The system administrator has blocked the registration of new users') }}
</div>
<div class="text-center">
<a class="btn btn-primary" href="{{ route('login') }}">{{__('Back')}}</a>
<a class="btn btn-primary" href="{{ route('login') }}">{{ __('Back') }}</a>
</div>
@else
<p class="login-box-msg">{{__('Register a new membership')}}</p>
@else
<p class="login-box-msg">{{ __('Register a new membership') }}</p>
<form method="POST" action="{{ route('register') }}">
@error('ip')
<span class="text-danger" role="alert">
<small><strong>{{ $message }}</strong></small>
</span>
<span class="text-danger" role="alert">
<small><strong>{{ $message }}</strong></small>
</span>
@enderror
@error('registered')
<span class="text-danger" role="alert">
<small><strong>{{ $message }}</strong></small>
</span>
<span class="text-danger" role="alert">
<small><strong>{{ $message }}</strong></small>
</span>
@enderror
@if( $errors->has('ptero_registration_error') )
@foreach( $errors->get('ptero_registration_error') as $err )
@if ($errors->has('ptero_registration_error'))
@foreach ($errors->get('ptero_registration_error') as $err)
<span class="text-danger" role="alert">
<small><strong>{{ $err }}</strong></small>
</span>
</span>
@endforeach
@endif
@csrf
<div class="form-group">
<div class="input-group">
<input type="text" class="form-control @error('name') is-invalid @enderror" name="name" value="{{ old('name') }}"
placeholder="{{__('Username')}}" required autocomplete="name" autofocus>
<input type="text" class="form-control @error('name') is-invalid @enderror"
name="name" value="{{ old('name') }}" placeholder="{{ __('Username') }}"
required autocomplete="name" autofocus>
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-user"></span>
@ -52,7 +55,7 @@
</div>
</div>
@error('name')
<span class="text-danger" role="alert">
<span class="text-danger" role="alert">
<small><strong>{{ $message }}</strong></small>
</span>
@enderror
@ -61,8 +64,10 @@
<div class="form-group">
<div class="input-group mb-3">
<input type="email" name="email" class="form-control @error('email') is-invalid @enderror" placeholder="{{__('Email')}}"
value="{{ old('email') }}" required autocomplete="email">
<input type="email" name="email"
class="form-control @error('email') is-invalid @enderror"
placeholder="{{ __('Email') }}" value="{{ old('email') }}" required
autocomplete="email">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-envelope"></span>
@ -70,7 +75,7 @@
</div>
</div>
@error('email')
<span class="text-danger" role="alert">
<span class="text-danger" role="alert">
<small><strong>{{ $message }}</strong></small>
</span>
@enderror
@ -78,7 +83,9 @@
<div class="form-group">
<div class="input-group mb-3">
<input type="password" class="form-control @error('password') is-invalid @enderror" placeholder="{{__('Password')}}" name="password" required autocomplete="new-password">
<input type="password" class="form-control @error('password') is-invalid @enderror"
placeholder="{{ __('Password') }}" name="password" required
autocomplete="new-password">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-lock"></span>
@ -86,23 +93,26 @@
</div>
</div>
@error('password')
<span class="text-danger" role="alert">
<span class="text-danger" role="alert">
<small><strong>{{ $message }}</strong></small>
</span>
@enderror
</div>
<div class="input-group mb-3">
<input type="password" class="form-control" name="password_confirmation" placeholder="{{__('Retype password')}}" required autocomplete="new-password">
<input type="password" class="form-control" name="password_confirmation"
placeholder="{{ __('Retype password') }}" required autocomplete="new-password">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-lock"></span>
</div>
</div>
</div>
@if(config('SETTINGS::REFERRAL::ENABLED') == "true")
@if (config('SETTINGS::REFERRAL::ENABLED') == 'true')
<div class="input-group mb-3">
<input type="text" value="{{ \Request::get('ref') }}" class="form-control" name="referral_code" placeholder="{{__('Referral code')}} ({{__("optional")}})">
<input type="text" value="{{ \Request::get('ref') }}" class="form-control"
name="referral_code"
placeholder="{{ __('Referral code') }} ({{ __('optional') }})">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-user-check"></span>
@ -111,51 +121,63 @@
</div>
@endif
@if (config('SETTINGS::RECAPTCHA:ENABLED') == 'true')
<div class="input-group mb-3">
{!! htmlFormSnippet() !!}
@error('g-recaptcha-response')
<span class="text-danger" role="alert">
<small><strong>{{ $message }}</strong></small>
</span>
@enderror
</div>
<div class="input-group mb-3">
{!! htmlFormSnippet() !!}
@error('g-recaptcha-response')
<span class="text-danger" role="alert">
<small><strong>{{ $message }}</strong></small>
</span>
@enderror
</div>
@endif
<div class="row">
<div class="col-8">
{{-- <div class="icheck-primary">--}}
{{-- <input type="checkbox" id="agreeTerms" name="terms" value="agree">--}}
{{-- <label for="agreeTerms">--}}
{{-- I agree to the <a href="#">terms</a>--}}
{{-- </label>--}}
{{-- </div>--}}
</div>
<!-- /.col -->
<div class="col-4">
<button type="submit" class="btn btn-primary">{{__('Register')}}</button>
</div>
<!-- /.col -->
</div>
</form>
{{-- <div class="icheck-primary"> --}}
{{-- <input type="checkbox" id="agreeTerms" name="terms" value="agree"> --}}
{{-- <label for="agreeTerms"> --}}
{{-- I agree to the <a href="#">terms</a> --}}
{{-- </label> --}}
{{-- </div> --}}
</div>
<!-- /.col -->
<div class="col-4">
<button type="submit" class="btn btn-primary">{{ __('Register') }}</button>
</div>
<!-- /.col -->
</div>
</form>
{{-- <div class="social-auth-links text-center">--}}
{{-- <a href="#" class="btn btn-block btn-primary">--}}
{{-- <i class="fab fa-facebook mr-2"></i>--}}
{{-- Sign up using Facebook--}}
{{-- </a>--}}
{{-- <a href="#" class="btn btn-block btn-danger">--}}
{{-- <i class="fab fa-google-plus mr-2"></i>--}}
{{-- Sign up using Google+--}}
{{-- </a>--}}
{{-- </div>--}}
{{-- <div class="social-auth-links text-center"> --}}
{{-- <a href="#" class="btn btn-block btn-primary"> --}}
{{-- <i class="fab fa-facebook mr-2"></i> --}}
{{-- Sign up using Facebook --}}
{{-- </a> --}}
{{-- <a href="#" class="btn btn-block btn-danger"> --}}
{{-- <i class="fab fa-google-plus mr-2"></i> --}}
{{-- Sign up using Google+ --}}
{{-- </a> --}}
{{-- </div> --}}
<a href="{{route('login')}}" class="text-center">{{__('I already have a membership')}}</a>
<a href="{{ route('login') }}" class="text-center">{{ __('I already have a membership') }}</a>
</div>
<!-- /.form-box -->
</div><!-- /.card -->
</div>
<!-- /.register-box -->
{{-- imprint and privacy policy --}}
<div class="fixed-bottom ">
<div class="container text-center">
@if (config('SETTINGS::SYSTEM:SHOW_IMPRINT'))
<a href="{{ route('imprint') }}"><strong>{{ __('Imprint') }}</strong></a> |
@endif
@if (config('SETTINGS::SYSTEM:SHOW_PRIVACY'))
<a href="{{ route('privacy') }}"><strong>{{ __('Privacy') }}</strong></a>
@endif
</div>
<!-- /.form-box -->
</div><!-- /.card -->
</div>
<!-- /.register-box -->
</div>
</body>
@endif
@endsection

View file

@ -0,0 +1,48 @@
<p>
This website is operated by:
</p>
<p>
<strong>Company Name</strong><br>
Street Name &amp; Number<br>
City<br>
Country<br>
Phone: +00 000 000 000<br>
Email: <a href="mailto">[email protected]</a>
</p>
<p>
<strong>Company Registration Number:</strong> 00000000<br>
<strong>VAT Number:</strong> 000000000
</p>
<p>
The European Commission provides a platform for online dispute resolution (OS) which is available at <a
href="https://ec.europa.eu/consumers/odr/main/index.cfm?event=main.home2.show&lng=EN">https://ec.europa.eu/consumers/odr/main/index.cfm?event=main.home2.show&lng=EN</a>.
We are not obliged or willing to participate in dispute resolution proceedings before a consumer arbitration board.
</p>
<p>
<strong>Disclaimer</strong><br>
Liability for Contents<br>
The contents of our pages have been created with the utmost care. However, we cannot guarantee the contents'
accuracy, completeness or topicality. According to statutory provisions, we are furthermore responsible for our own
content on these web pages. In this matter, please note that we are not obliged to monitor the transmitted or saved
information of third parties, or investigate circumstances pointing to illegal activity. Our obligations to remove
or block the use of information under generally applicable laws remain unaffected by this as per §§ 8 to 10 of the
Telemedia Act (TMG).
</p>
<p>
Liability for Links<br>
Our offer contains links to external third party websites. We have no influence on the contents of those websites,
and therefore cannot assume any liability for these foreign contents. The respective provider or operator of the
pages is always responsible for the contents of the linked pages. The linked pages were checked for possible legal
violations at the time of linking. Illegal contents were not discernible at the time of linking. However, a
permanent content control of the linked pages is not reasonable without concrete evidence of a violation of law. If
we become aware of any infringements, we will remove such links immediately.
</p>

View file

@ -0,0 +1,22 @@
@extends('layouts.app')
@section('content')
<body class="dark-mode">
<div class="container privacy-card">
<div class="row">
<div class="col-md-10" style="height: 20px;"></div>
</div>
<div class="row justify-content-center ">
<div class="col-md-10">
<div class="card">
<div class="card-header">{{ __('Imprint') }}</div>
<div class="card-body">
@include('imprint-content')
</div>
</div>
</div>
</div>
</body>
@endsection

View file

@ -20,9 +20,11 @@
<link rel="dns-prefetch" href="//fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet">
<link rel="stylesheet" href="{{ asset('css/app.css') }}">
<link rel="preload" href="{{ asset('plugins/fontawesome-free/css/all.min.css') }}" as="style"
onload="this.onload=null;this.rel='stylesheet'">
<link rel="stylesheet" href="{{ asset('css/app.css') }}">
<noscript>
<link rel="stylesheet" href="{{ asset('plugins/fontawesome-free/css/all.min.css') }}">
</noscript>
@ -36,26 +38,26 @@
<script>
@if (Session::has('error'))
Swal.fire({
icon: 'error',
title: 'Oops...',
html: '{{ Session::get('error') }}',
icon: 'error',
title: 'Oops...',
html: '{{ Session::get('error') }}',
})
@endif
@if (Session::has('success'))
Swal.fire({
icon: 'success',
title: '{{ Session::get('success') }}',
position: 'top-end',
showConfirmButton: false,
background : '#343a40',
toast: true,
timer: 3000,
timerProgressBar: true,
didOpen: (toast) => {
toast.addEventListener('mouseenter', Swal.stopTimer)
toast.addEventListener('mouseleave', Swal.resumeTimer)
}
icon: 'success',
title: '{{ Session::get('success') }}',
position: 'top-end',
showConfirmButton: false,
background: '#343a40',
toast: true,
timer: 3000,
timerProgressBar: true,
didOpen: (toast) => {
toast.addEventListener('mouseenter', Swal.stopTimer)
toast.addEventListener('mouseleave', Swal.resumeTimer)
}
})
@endif
</script>

View file

@ -8,7 +8,7 @@
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>{{ config('app.name', 'Laravel') }}</title>
<link rel="icon"
href="{{ \Illuminate\Support\Facades\Storage::disk('public')->exists('favicon.ico')? asset('storage/favicon.ico'): asset('favicon.ico') }}"
href="{{ \Illuminate\Support\Facades\Storage::disk('public')->exists('favicon.ico') ? asset('storage/favicon.ico') : asset('favicon.ico') }}"
type="image/x-icon">
<script defer src="https://unpkg.com/alpinejs@3.x.x/dist/cdn.min.js"></script>
@ -49,11 +49,11 @@
<a href="{{ route('home') }}" class="nav-link"><i
class="fas fa-home mr-2"></i>{{ __('Home') }}</a>
</li>
@if(config('SETTINGS::DISCORD:INVITE_URL'))
<li class="nav-item d-none d-sm-inline-block">
<a href="{{ config('SETTINGS::DISCORD:INVITE_URL') }}" class="nav-link" target="__blank"><i
class="fab fa-discord mr-2"></i>{{ __('Discord') }}</a>
</li>
@if (config('SETTINGS::DISCORD:INVITE_URL'))
<li class="nav-item d-none d-sm-inline-block">
<a href="{{ config('SETTINGS::DISCORD:INVITE_URL') }}" class="nav-link" target="__blank"><i
class="fab fa-discord mr-2"></i>{{ __('Discord') }}</a>
</li>
@endif
<!-- Language Selection -->
@if (config('SETTINGS::LOCALE:CLIENTS_CAN_CHANGE') == 'true')
@ -72,7 +72,6 @@
<button class="dropdown-item" name="inputLocale" value="{{ $key }}">
{{ __($key) }}
</button>
@endforeach
</form>
@ -98,8 +97,7 @@
{{ __('Notifications') }}</span>
<div class="dropdown-divider"></div>
@foreach (Auth::user()->unreadNotifications->sortBy('created_at')->take(5)
as $notification)
@foreach (Auth::user()->unreadNotifications->sortBy('created_at')->take(5) as $notification)
<a href="{{ route('notifications.show', $notification->id) }}" class="dropdown-item">
<span class="d-inline-block text-truncate" style="max-width: 150px;"><i
class="fas fa-envelope mr-2"></i>{{ $notification->data['title'] }}</span>
@ -114,7 +112,7 @@
class="dropdown-item dropdown-footer">{{ __('See all Notifications') }}</a>
<div class="dropdown-divider"></div>
<a href="{{ route('notifications.readAll') }}"
class="dropdown-item dropdown-footer">{{ __('Mark all as read') }}</a>
class="dropdown-item dropdown-footer">{{ __('Mark all as read') }}</a>
</div>
</li>
@ -141,8 +139,8 @@
</li>
<li class="nav-item dropdown no-arrow">
<a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
<a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span class="mr-1 d-lg-inline text-gray-600 small">
{{ Auth::user()->name }}
<img width="28px" height="28px" class="rounded-circle ml-1"
@ -170,7 +168,8 @@
<div class="dropdown-divider"></div>
<form method="post" action="{{ route('logout') }}">
@csrf
<button class="dropdown-item" href="#" data-toggle="modal" data-target="#logoutModal">
<button class="dropdown-item" href="#" data-toggle="modal"
data-target="#logoutModal">
<i class="fas fa-sign-out-alt fa-sm fa-fw mr-2 text-gray-400"></i>
{{ __('Logout') }}
</button>
@ -185,7 +184,7 @@
<!-- Brand Logo -->
<a href="{{ route('home') }}" class="brand-link">
<img width="64" height="64"
src="{{ \Illuminate\Support\Facades\Storage::disk('public')->exists('icon.png')? asset('storage/icon.png'): asset('images/controlpanel_logo.png') }}"
src="{{ \Illuminate\Support\Facades\Storage::disk('public')->exists('icon.png') ? asset('storage/icon.png') : asset('images/controlpanel_logo.png') }}"
alt="{{ config('app.name', 'Laravel') }} Logo" class="brand-image img-circle"
style="opacity: .8">
<span class="brand-text font-weight-light">{{ config('app.name', 'Controlpanel.gg') }}</span>
@ -201,14 +200,16 @@
<!-- Add icons to the links using the .nav-icon class
with font-awesome or any other icon font library -->
<li class="nav-item">
<a href="{{ route('home') }}" class="nav-link @if (Request::routeIs('home')) active @endif">
<a href="{{ route('home') }}"
class="nav-link @if (Request::routeIs('home')) active @endif">
<i class="nav-icon fa fa-home"></i>
<p>{{ __('Dashboard') }}</p>
</a>
</li>
<li class="nav-item">
<a href="{{ route('servers.index') }}" class="nav-link @if (Request::routeIs('servers.*')) active @endif">
<a href="{{ route('servers.index') }}"
class="nav-link @if (Request::routeIs('servers.*')) active @endif">
<i class="nav-icon fa fa-server"></i>
<p>{{ __('Servers') }}
<span class="badge badge-info right">{{ Auth::user()->servers()->count() }} /
@ -217,34 +218,42 @@
</a>
</li>
@if (env('APP_ENV') == 'local' || (config('SETTINGS::PAYMENTS:PAYPAL:SECRET') && config('SETTINGS::PAYMENTS:PAYPAL:CLIENT_ID')) || (config('SETTINGS::PAYMENTS:STRIPE:SECRET') && config('SETTINGS::PAYMENTS:STRIPE:ENDPOINT_SECRET') && config('SETTINGS::PAYMENTS:STRIPE:METHODS')))
@if (env('APP_ENV') == 'local' ||
(config('SETTINGS::PAYMENTS:PAYPAL:SECRET') && config('SETTINGS::PAYMENTS:PAYPAL:CLIENT_ID')) ||
(config('SETTINGS::PAYMENTS:STRIPE:SECRET') &&
config('SETTINGS::PAYMENTS:STRIPE:ENDPOINT_SECRET') &&
config('SETTINGS::PAYMENTS:STRIPE:METHODS')))
<li class="nav-item">
<a href="{{ route('store.index') }}" class="nav-link @if (Request::routeIs('store.*') || Request::routeIs('checkout')) active @endif">
<a href="{{ route('store.index') }}"
class="nav-link @if (Request::routeIs('store.*') || Request::routeIs('checkout')) active @endif">
<i class="nav-icon fa fa-coins"></i>
<p>{{ __('Store') }}</p>
</a>
</li>
@endif
@if(config("SETTINGS::TICKET:ENABLED"))
<li class="nav-item">
<a href="{{ route('ticket.index') }}" class="nav-link @if (Request::routeIs('ticket.*')) active @endif">
<i class="nav-icon fas fas fa-ticket-alt"></i>
<p>{{ __('Support Ticket') }}</p>
</a>
</li>
@if (config('SETTINGS::TICKET:ENABLED'))
<li class="nav-item">
<a href="{{ route('ticket.index') }}"
class="nav-link @if (Request::routeIs('ticket.*')) active @endif">
<i class="nav-icon fas fas fa-ticket-alt"></i>
<p>{{ __('Support Ticket') }}</p>
</a>
</li>
@endif
@if ((Auth::user()->role == 'admin' || Auth::user()->role == 'moderator') && config("SETTINGS::TICKET:ENABLED"))
@if ((Auth::user()->role == 'admin' || Auth::user()->role == 'moderator') && config('SETTINGS::TICKET:ENABLED'))
<li class="nav-header">{{ __('Moderation') }}</li>
<li class="nav-item">
<a href="{{ route('moderator.ticket.index') }}" class="nav-link @if (Request::routeIs('moderator.ticket.index')) active @endif">
<a href="{{ route('moderator.ticket.index') }}"
class="nav-link @if (Request::routeIs('moderator.ticket.index')) active @endif">
<i class="nav-icon fas fa-ticket-alt"></i>
<p>{{ __('Ticket List') }}</p>
</a>
</li>
<li class="nav-item">
<a href="{{ route('moderator.ticket.blacklist') }}" class="nav-link @if (Request::routeIs('moderator.ticket.blacklist')) active @endif">
<a href="{{ route('moderator.ticket.blacklist') }}"
class="nav-link @if (Request::routeIs('moderator.ticket.blacklist')) active @endif">
<i class="nav-icon fas fa-user-times"></i>
<p>{{ __('Ticket Blacklist') }}</p>
</a>
@ -252,7 +261,6 @@
@endif
@if (Auth::user()->role == 'admin')
<li class="nav-header">{{ __('Administration') }}</li>
<li class="nav-item">
@ -273,7 +281,8 @@
</li>
<li class="nav-item">
<a href="{{ route('admin.api.index') }}" class="nav-link @if (Request::routeIs('admin.api.*')) active @endif">
<a href="{{ route('admin.api.index') }}"
class="nav-link @if (Request::routeIs('admin.api.*')) active @endif">
<i class="nav-icon fa fa-gamepad"></i>
<p>{{ __('Application API') }}</p>
</a>
@ -282,7 +291,8 @@
<li class="nav-header">{{ __('Management') }}</li>
<li class="nav-item">
<a href="{{ route('admin.users.index') }}" class="nav-link @if (Request::routeIs('admin.users.*')) active @endif">
<a href="{{ route('admin.users.index') }}"
class="nav-link @if (Request::routeIs('admin.users.*')) active @endif">
<i class="nav-icon fas fa-users"></i>
<p>{{ __('Users') }}</p>
</a>
@ -305,7 +315,8 @@
</li>
<li class="nav-item">
<a href="{{ route('admin.store.index') }}" class="nav-link @if (Request::routeIs('admin.store.*')) active @endif">
<a href="{{ route('admin.store.index') }}"
class="nav-link @if (Request::routeIs('admin.store.*')) active @endif">
<i class="nav-icon fas fa-shopping-basket"></i>
<p>{{ __('Store') }}</p>
</a>
@ -368,7 +379,6 @@
<p>{{ __('Activity Logs') }}</p>
</a>
</li>
@endif
</ul>
@ -404,9 +414,19 @@
href="{{ url('/') }}">{{ env('APP_NAME', 'Laravel') }}</a>.</strong>
All rights
reserved. Powered by <a href="https://controlpanel.gg">ControlPanel</a>.
@if(!str_contains(config("BRANCHNAME"),"main"))
Version <b>{{ config('app')['version'] }} - {{config("BRANCHNAME")}}</b>
@if (!str_contains(config('BRANCHNAME'), 'main'))
Version <b>{{ config('app')['version'] }} - {{ config('BRANCHNAME') }}</b>
@endif
{{-- Show imprint and privacy link --}}
<div class="float-right d-none d-sm-inline-block">
@if (config('SETTINGS::SYSTEM:SHOW_IMPRINT'))
<a href="{{ route('imprint') }}"><strong>{{ __('Imprint') }}</strong></a> |
@endif
@if (config('SETTINGS::SYSTEM:SHOW_PRIVACY'))
<a href="{{ route('privacy') }}"><strong>{{ __('Privacy') }}</strong></a>
@endif
</div>
</footer>
<!-- Control Sidebar -->
@ -448,42 +468,42 @@
<script>
@if (Session::has('error'))
Swal.fire({
icon: 'error',
title: 'Oops...',
html: '{{ Session::get('error') }}',
icon: 'error',
title: 'Oops...',
html: '{{ Session::get('error') }}',
})
@endif
@if (Session::has('success'))
Swal.fire({
icon: 'success',
title: '{{ Session::get('success') }}',
position: 'top-end',
showConfirmButton: false,
background: '#343a40',
toast: true,
timer: 3000,
timerProgressBar: true,
didOpen: (toast) => {
toast.addEventListener('mouseenter', Swal.stopTimer)
toast.addEventListener('mouseleave', Swal.resumeTimer)
}
icon: 'success',
title: '{{ Session::get('success') }}',
position: 'top-end',
showConfirmButton: false,
background: '#343a40',
toast: true,
timer: 3000,
timerProgressBar: true,
didOpen: (toast) => {
toast.addEventListener('mouseenter', Swal.stopTimer)
toast.addEventListener('mouseleave', Swal.resumeTimer)
}
})
@endif
@if (Session::has('info'))
Swal.fire({
icon: 'info',
title: '{{ Session::get('info') }}',
position: 'top-end',
showConfirmButton: false,
background: '#343a40',
toast: true,
timer: 3000,
timerProgressBar: true,
didOpen: (toast) => {
toast.addEventListener('mouseenter', Swal.stopTimer)
toast.addEventListener('mouseleave', Swal.resumeTimer)
}
})
Swal.fire({
icon: 'info',
title: '{{ Session::get('info') }}',
position: 'top-end',
showConfirmButton: false,
background: '#343a40',
toast: true,
timer: 3000,
timerProgressBar: true,
didOpen: (toast) => {
toast.addEventListener('mouseenter', Swal.stopTimer)
toast.addEventListener('mouseleave', Swal.resumeTimer)
}
})
@endif
</script>
</body>

View file

@ -0,0 +1,261 @@
<p>Last updated: December 22, 2022</p>
<p>This Privacy Policy describes Our policies and procedures on the collection, use and disclosure of Your information
when You use the Service and tells You about Your privacy rights and how the law protects You.</p>
<p>We use Your Personal data to provide and improve the Service. By using the Service, You agree to the collection and
use of information in accordance with this Privacy Policy. This Privacy Policy has been created with the help of the
<a href="https://www.freeprivacypolicy.com/free-privacy-policy-generator/" target="_blank">Free Privacy Policy
Generator</a>.</p>
<h1>Interpretation and Definitions</h1>
<h2>Interpretation</h2>
<p>The words of which the initial letter is capitalized have meanings defined under the following conditions. The
following definitions shall have the same meaning regardless of whether they appear in singular or in plural.</p>
<h2>Definitions</h2>
<p>For the purposes of this Privacy Policy:</p>
<ul>
<li>
<p><strong>Account</strong> means a unique account created for You to access our Service or parts of our
Service.</p>
</li>
<li>
<p><strong>Company</strong> (referred to as either &quot;the Company&quot;, &quot;We&quot;, &quot;Us&quot; or
&quot;Our&quot; in this Agreement) refers to controlpanel.</p>
</li>
<li>
<p><strong>Cookies</strong> are small files that are placed on Your computer, mobile device or any other device
by a website, containing the details of Your browsing history on that website among its many uses.</p>
</li>
<li>
<p><strong>Country</strong> refers to: Alabama, United States</p>
</li>
<li>
<p><strong>Device</strong> means any device that can access the Service such as a computer, a cellphone or a
digital tablet.</p>
</li>
<li>
<p><strong>Personal Data</strong> is any information that relates to an identified or identifiable individual.
</p>
</li>
<li>
<p><strong>Service</strong> refers to the Website.</p>
</li>
<li>
<p><strong>Service Provider</strong> means any natural or legal person who processes the data on behalf of the
Company. It refers to third-party companies or individuals employed by the Company to facilitate the
Service, to provide the Service on behalf of the Company, to perform services related to the Service or to
assist the Company in analyzing how the Service is used.</p>
</li>
<li>
<p><strong>Usage Data</strong> refers to data collected automatically, either generated by the use of the
Service or from the Service infrastructure itself (for example, the duration of a page visit).</p>
</li>
<li>
<p><strong>Website</strong> refers to controlpanel, accessible from <a href="controlpanel"
rel="external nofollow noopener" target="_blank">controlpanel</a></p>
</li>
<li>
<p><strong>You</strong> means the individual accessing or using the Service, or the company, or other legal
entity on behalf of which such individual is accessing or using the Service, as applicable.</p>
</li>
</ul>
<h1>Collecting and Using Your Personal Data</h1>
<h2>Types of Data Collected</h2>
<h3>Personal Data</h3>
<p>While using Our Service, We may ask You to provide Us with certain personally identifiable information that can be
used to contact or identify You. Personally identifiable information may include, but is not limited to:</p>
<ul>
<li>
<p>Email address</p>
</li>
<li>
<p>Usage Data</p>
</li>
</ul>
<h3>Usage Data</h3>
<p>Usage Data is collected automatically when using the Service.</p>
<p>Usage Data may include information such as Your Device's Internet Protocol address (e.g. IP address), browser type,
browser version, the pages of our Service that You visit, the time and date of Your visit, the time spent on those
pages, unique device identifiers and other diagnostic data.</p>
<p>When You access the Service by or through a mobile device, We may collect certain information automatically,
including, but not limited to, the type of mobile device You use, Your mobile device unique ID, the IP address of
Your mobile device, Your mobile operating system, the type of mobile Internet browser You use, unique device
identifiers and other diagnostic data.</p>
<p>We may also collect information that Your browser sends whenever You visit our Service or when You access the Service
by or through a mobile device.</p>
<h3>Tracking Technologies and Cookies</h3>
<p>We use Cookies and similar tracking technologies to track the activity on Our Service and store certain information.
Tracking technologies used are beacons, tags, and scripts to collect and track information and to improve and
analyze Our Service. The technologies We use may include:</p>
<ul>
<li><strong>Cookies or Browser Cookies.</strong> A cookie is a small file placed on Your Device. You can instruct
Your browser to refuse all Cookies or to indicate when a Cookie is being sent. However, if You do not accept
Cookies, You may not be able to use some parts of our Service. Unless you have adjusted Your browser setting so
that it will refuse Cookies, our Service may use Cookies.</li>
<li><strong>Web Beacons.</strong> Certain sections of our Service and our emails may contain small electronic files
known as web beacons (also referred to as clear gifs, pixel tags, and single-pixel gifs) that permit the
Company, for example, to count users who have visited those pages or opened an email and for other related
website statistics (for example, recording the popularity of a certain section and verifying system and server
integrity).</li>
</ul>
<p>Cookies can be &quot;Persistent&quot; or &quot;Session&quot; Cookies. Persistent Cookies remain on Your personal
computer or mobile device when You go offline, while Session Cookies are deleted as soon as You close Your web
browser. Learn more about cookies on the <a
href="https://www.freeprivacypolicy.com/blog/sample-privacy-policy-template/#Use_Of_Cookies_And_Tracking"
target="_blank">Free Privacy Policy website</a> article.</p>
<p>We use both Session and Persistent Cookies for the purposes set out below:</p>
<ul>
<li>
<p><strong>Necessary / Essential Cookies</strong></p>
<p>Type: Session Cookies</p>
<p>Administered by: Us</p>
<p>Purpose: These Cookies are essential to provide You with services available through the Website and to enable
You to use some of its features. They help to authenticate users and prevent fraudulent use of user
accounts. Without these Cookies, the services that You have asked for cannot be provided, and We only use
these Cookies to provide You with those services.</p>
</li>
<li>
<p><strong>Cookies Policy / Notice Acceptance Cookies</strong></p>
<p>Type: Persistent Cookies</p>
<p>Administered by: Us</p>
<p>Purpose: These Cookies identify if users have accepted the use of cookies on the Website.</p>
</li>
<li>
<p><strong>Functionality Cookies</strong></p>
<p>Type: Persistent Cookies</p>
<p>Administered by: Us</p>
<p>Purpose: These Cookies allow us to remember choices You make when You use the Website, such as remembering
your login details or language preference. The purpose of these Cookies is to provide You with a more
personal experience and to avoid You having to re-enter your preferences every time You use the Website.</p>
</li>
</ul>
<p>For more information about the cookies we use and your choices regarding cookies, please visit our Cookies Policy or
the Cookies section of our Privacy Policy.</p>
<h2>Use of Your Personal Data</h2>
<p>The Company may use Personal Data for the following purposes:</p>
<ul>
<li>
<p><strong>To provide and maintain our Service</strong>, including to monitor the usage of our Service.</p>
</li>
<li>
<p><strong>To manage Your Account:</strong> to manage Your registration as a user of the Service. The Personal
Data You provide can give You access to different functionalities of the Service that are available to You
as a registered user.</p>
</li>
<li>
<p><strong>For the performance of a contract:</strong> the development, compliance and undertaking of the
purchase contract for the products, items or services You have purchased or of any other contract with Us
through the Service.</p>
</li>
<li>
<p><strong>To contact You:</strong> To contact You by email, telephone calls, SMS, or other equivalent forms of
electronic communication, such as a mobile application's push notifications regarding updates or informative
communications related to the functionalities, products or contracted services, including the security
updates, when necessary or reasonable for their implementation.</p>
</li>
<li>
<p><strong>To provide You</strong> with news, special offers and general information about other goods, services
and events which we offer that are similar to those that you have already purchased or enquired about unless
You have opted not to receive such information.</p>
</li>
<li>
<p><strong>To manage Your requests:</strong> To attend and manage Your requests to Us.</p>
</li>
<li>
<p><strong>For business transfers:</strong> We may use Your information to evaluate or conduct a merger,
divestiture, restructuring, reorganization, dissolution, or other sale or transfer of some or all of Our
assets, whether as a going concern or as part of bankruptcy, liquidation, or similar proceeding, in which
Personal Data held by Us about our Service users is among the assets transferred.</p>
</li>
<li>
<p><strong>For other purposes</strong>: We may use Your information for other purposes, such as data analysis,
identifying usage trends, determining the effectiveness of our promotional campaigns and to evaluate and
improve our Service, products, services, marketing and your experience.</p>
</li>
</ul>
<p>We may share Your personal information in the following situations:</p>
<ul>
<li><strong>With Service Providers:</strong> We may share Your personal information with Service Providers to
monitor and analyze the use of our Service, to contact You.</li>
<li><strong>For business transfers:</strong> We may share or transfer Your personal information in connection with,
or during negotiations of, any merger, sale of Company assets, financing, or acquisition of all or a portion of
Our business to another company.</li>
<li><strong>With Affiliates:</strong> We may share Your information with Our affiliates, in which case we will
require those affiliates to honor this Privacy Policy. Affiliates include Our parent company and any other
subsidiaries, joint venture partners or other companies that We control or that are under common control with
Us.</li>
<li><strong>With business partners:</strong> We may share Your information with Our business partners to offer You
certain products, services or promotions.</li>
<li><strong>With other users:</strong> when You share personal information or otherwise interact in the public areas
with other users, such information may be viewed by all users and may be publicly distributed outside.</li>
<li><strong>With Your consent</strong>: We may disclose Your personal information for any other purpose with Your
consent.</li>
</ul>
<h2>Retention of Your Personal Data</h2>
<p>The Company will retain Your Personal Data only for as long as is necessary for the purposes set out in this Privacy
Policy. We will retain and use Your Personal Data to the extent necessary to comply with our legal obligations (for
example, if we are required to retain your data to comply with applicable laws), resolve disputes, and enforce our
legal agreements and policies.</p>
<p>The Company will also retain Usage Data for internal analysis purposes. Usage Data is generally retained for a
shorter period of time, except when this data is used to strengthen the security or to improve the functionality of
Our Service, or We are legally obligated to retain this data for longer time periods.</p>
<h2>Transfer of Your Personal Data</h2>
<p>Your information, including Personal Data, is processed at the Company's operating offices and in any other places
where the parties involved in the processing are located. It means that this information may be transferred to and
maintained on computers located outside of Your state, province, country or other governmental jurisdiction where
the data protection laws may differ than those from Your jurisdiction.</p>
<p>Your consent to this Privacy Policy followed by Your submission of such information represents Your agreement to that
transfer.</p>
<p>The Company will take all steps reasonably necessary to ensure that Your data is treated securely and in accordance
with this Privacy Policy and no transfer of Your Personal Data will take place to an organization or a country
unless there are adequate controls in place including the security of Your data and other personal information.</p>
<h2>Delete Your Personal Data</h2>
<p>You have the right to delete or request that We assist in deleting the Personal Data that We have collected about
You.</p>
<p>Our Service may give You the ability to delete certain information about You from within the Service.</p>
<p>You may update, amend, or delete Your information at any time by signing in to Your Account, if you have one, and
visiting the account settings section that allows you to manage Your personal information. You may also contact Us
to request access to, correct, or delete any personal information that You have provided to Us.</p>
<p>Please note, however, that We may need to retain certain information when we have a legal obligation or lawful basis
to do so.</p>
<h2>Disclosure of Your Personal Data</h2>
<h3>Business Transactions</h3>
<p>If the Company is involved in a merger, acquisition or asset sale, Your Personal Data may be transferred. We will
provide notice before Your Personal Data is transferred and becomes subject to a different Privacy Policy.</p>
<h3>Law enforcement</h3>
<p>Under certain circumstances, the Company may be required to disclose Your Personal Data if required to do so by law
or in response to valid requests by public authorities (e.g. a court or a government agency).</p>
<h3>Other legal requirements</h3>
<p>The Company may disclose Your Personal Data in the good faith belief that such action is necessary to:</p>
<ul>
<li>Comply with a legal obligation</li>
<li>Protect and defend the rights or property of the Company</li>
<li>Prevent or investigate possible wrongdoing in connection with the Service</li>
<li>Protect the personal safety of Users of the Service or the public</li>
<li>Protect against legal liability</li>
</ul>
<h2>Security of Your Personal Data</h2>
<p>The security of Your Personal Data is important to Us, but remember that no method of transmission over the Internet,
or method of electronic storage is 100% secure. While We strive to use commercially acceptable means to protect Your
Personal Data, We cannot guarantee its absolute security.</p>
<h1>Children's Privacy</h1>
<p>Our Service does not address anyone under the age of 13. We do not knowingly collect personally identifiable
information from anyone under the age of 13. If You are a parent or guardian and You are aware that Your child has
provided Us with Personal Data, please contact Us. If We become aware that We have collected Personal Data from
anyone under the age of 13 without verification of parental consent, We take steps to remove that information from
Our servers.</p>
<p>If We need to rely on consent as a legal basis for processing Your information and Your country requires consent from
a parent, We may require Your parent's consent before We collect and use that information.</p>
<h1>Links to Other Websites</h1>
<p>Our Service may contain links to other websites that are not operated by Us. If You click on a third party link, You
will be directed to that third party's site. We strongly advise You to review the Privacy Policy of every site You
visit.</p>
<p>We have no control over and assume no responsibility for the content, privacy policies or practices of any third
party sites or services.</p>
<h1>Changes to this Privacy Policy</h1>
<p>We may update Our Privacy Policy from time to time. We will notify You of any changes by posting the new Privacy
Policy on this page.</p>
<p>We will let You know via email and/or a prominent notice on Our Service, prior to the change becoming effective and
update the &quot;Last updated&quot; date at the top of this Privacy Policy.</p>
<p>You are advised to review this Privacy Policy periodically for any changes. Changes to this Privacy Policy are
effective when they are posted on this page.</p>
<h1>Contact Us</h1>
<p>If you have any questions about this Privacy Policy, You can contact us:</p>

View file

@ -0,0 +1,21 @@
@extends('layouts.app')
@section('content')
<body class="dark-mode">
<div class="container privacy-card">
<div class="row">
<div class="col-md-10" style="height: 20px;"></div>
</div>
<div class="row justify-content-center">
<div class="col-md-10">
<div class="card">
<div class="card-header">{{ __('Privacy Policy') }}</div>
<div class="card-body">
@include('privacy-content')
</div>
</div>
</div>
</div>
</body>
@endsection

View file

@ -52,6 +52,14 @@ Auth::routes(['verify' => true]);
# Stripe WebhookRoute -> validation in Route Handler
Route::post('payment/StripeWebhooks', [PaymentController::class, 'StripeWebhooks'])->name('payment.StripeWebhooks');
Route::get('/privacy', function () {
return view('privacy');
})->name('privacy');
Route::get('/imprint', function () {
return view('imprint');
})->name('imprint');
Route::middleware(['auth', 'checkSuspended'])->group(function () {
#resend verification email
Route::get('/email/verification-notification', function (Request $request) {