3
0
Fork 0

Lot's of bug fixes

This commit is contained in:
BuildTools 2021-06-27 21:01:43 +02:00
parent ad320963fc
commit 7718ed6c32
196 changed files with 51167 additions and 3010 deletions

View file

@ -3,6 +3,9 @@
namespace App\Http\Controllers\Panel;
use App\Http\Controllers\Controller;
use App\Show;
use App\User;
use Illuminate\Support\Facades\DB;
class HomeController extends Controller
{
@ -13,7 +16,7 @@ class HomeController extends Controller
*/
public function __construct()
{
$this->middleware(['auth', 'verified', '2fa']);
$this->middleware(['auth', 'verified', '2fa', 'admin']);
}
/**
@ -23,8 +26,15 @@ class HomeController extends Controller
*/
public function index()
{
$users = User::count();
$regions = DB::table('region')->count();
$attractions = DB::table('attraction')->where('type', '!=', 'GLOBAL')->count();
$shows = Show::count();
return view('panel.home')->with([
'data' => ''
'users' => $users,
'regions' => $regions,
'attractions' => $attractions,
'shows' => $shows
]);
}

View file

@ -0,0 +1,63 @@
<?php
namespace App\Http\Controllers\Panel;
use App\Http\Controllers\Controller;
use App\Message;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\Validator;
class MessageController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware(['auth', 'verified', '2fa', 'admin']);
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
public function index()
{
return view('panel.message');
}
public function change(Request $request) {
$validator = Validator::make($request->all(), [
'message' => ['required', 'string']
]);
if(!$validator->passes()) {
session()->flash('error', 'Incorrect message');
return Redirect::back();
}
$message = Message::orderByDesc('id')->first();
if(!empty($message))
if($message->content === $request->get('message'))
return Redirect::back();
$message = Message::create([
'uuid' => Auth::user()->uuid,
'content' => $request->get('message')
]);
if(empty($message)) {
session()->flash('error', 'Unable to create message');
return Redirect::back();
}
session()->flash('success', 'Successfully posted message');
return Redirect::back();
}
}

View file

@ -0,0 +1,143 @@
<?php
namespace App\Http\Controllers\Panel;
use App\ChangeEmail;
use App\Http\Controllers\Controller;
use App\Show;
use App\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Str;
class ShowController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware(['auth', 'verified', '2fa', 'admin']);
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
public function index($page = 1, $search = '')
{
$pages = empty($search) ? Show::count() : Show::whereRaw("UPPER(`title`) LIKE '%". strtoupper($search)."%'")->count();
$pages = (int) ceil($pages/25);
if($pages < 1 && $page == 1)
$page = 1;
if($page < 1 || ($pages > 0 && $page > $pages)) {
$array['page'] = $pages > 0 ? $pages : 1;
if(!empty($search) && $pages > 0)
$array['search'] = $search;
return redirect()->route('panel.show', $array);
}
$query = Show::select('id', 'title', 'price', 'vault_price', 'seats');
if(!empty($search))
$query->whereRaw("UPPER(`title`) LIKE '%". strtoupper($search)."%'");
$data = $query->get();
return view('panel.show.index')->with([
'shows' => $data,
'page' => $page,
'pages' => $pages,
'search' => $search
]);
}
public function add() {
return view('panel.show.create');
}
public function create(Request $request) {
$validator = Validator::make($request->all(), [
'title' => ['required', 'unique:shows,title', 'max:255'],
'description' => ['required', 'string'],
'price' => ['required', 'numeric', 'min:0.01'],
'vault_price' => ['required', 'numeric', 'min:0.01'],
'seats' => ['required', 'numeric', 'min:1'],
'image' => ['required', 'string', 'max:255'],
]);
if(!$validator->passes())
return Redirect::back()->withErrors($validator->errors());
$request->merge([
'price' => number_format($request->get('price'), 2),
'vault_price' => number_format($request->get('vault_price'), 2)
]);
$show = Show::create($request->all());
if(empty($show)) {
session()->flash('error', 'Unable to create a new Show');
return Redirect::route('panel.ums');
}
session()->flash('success', 'Successfully created show.');
return Redirect::route('panel.show');
}
public function info($id) {
return view('panel.show.info')->with([
'show' => Show::findOrFail($id)
]);
}
public function edit($id) {
return view('panel.show.edit')->with([
'show' => Show::findOrFail($id)
]);
}
public function update(Request $request) {
if(!$request->has('id'))
return Redirect::back();
$show = Show::findOrFail($request->get('id'));
$validator = Validator::make($request->all(), [
'description' => ['required', 'string'],
'price' => ['required', 'numeric', 'min:0.01'],
'vault_price' => ['required', 'numeric', 'min:0.01'],
'image' => ['required', 'string', 'max:255'],
]);
if(!$validator->passes())
return Redirect::back()->withErrors($validator->errors());
$show->description = $request->get('description');
$show->price = number_format($request->get('price'), 2);
$show->vault_price = number_format($request->get('vault_price'), 2);
$show->image = $request->get('image');
if($show->save()) {
session()->flash('success', 'Successfully edited show');
return Redirect::route('panel.show');
}
session()->flash('error', 'Unable to edit show');
return Redirect::back();
}
public function delete($id) {
$show = Show::findOrFail($id);
if($show->delete()) {
session()->flash('success', 'Successfully deleted show.');
} else {
session()->flash('error', 'Unable to delete show.');
}
return Redirect::back();
}
}

View file

@ -0,0 +1,125 @@
<?php
namespace App\Http\Controllers\Panel;
use App\ChangeEmail;
use App\Http\Controllers\Controller;
use App\Show;
use App\ShowDate;
use App\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Str;
class ShowsController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware(['auth', 'verified', '2fa', 'admin']);
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
public function index($page = 1, $search = '')
{
$pages = empty($search) ? ShowDate::whereRaw('`show_dates`.`date` > CURDATE()')->count() : Show::join('shows', 'shows.id', '=', 'show_dates.show_id')
->whereRaw('`show_dates`.`date` > CURDATE()')
->whereRaw("UPPER(`title`) LIKE '%". strtoupper($search)."%'")->count();
$pages = (int) ceil($pages/25);
if($pages < 1 && $page == 1)
$page = 1;
if($page < 1 || ($pages > 0 && $page > $pages)) {
$array['page'] = $pages > 0 ? $pages : 1;
if(!empty($search) && $pages > 0)
$array['search'] = $search;
return redirect()->route('panel.shows', $array);
}
$query = ShowDate::join('shows', 'shows.id', '=', 'show_dates.show_id')
->whereRaw('`show_dates`.`date` > CURDATE()')
->select('show_dates.id', 'shows.title', DB::raw('DATE_FORMAT(`show_dates`.`date`, "%d-%m-%Y %H:%i") AS `date`'));
if(!empty($search))
$query->whereRaw("UPPER(`shows.title`) LIKE '%". strtoupper($search)."%'");
$data = $query->get();
return view('panel.shows.index')->with([
'dates' => $data,
'page' => $page,
'pages' => $pages,
'search' => $search
]);
}
public function search(Request $request) {
if(!$request->has('searchText'))
return response()->json([]);
$shows = Show::whereRaw("UPPER(`title`) LIKE '%". strtoupper($request->get('searchText'))."%'")->select('id', 'title')->get();
return response()->json($shows->all());
}
public function add() {
return view('panel.shows.create');
}
public function create(Request $request) {
$validator = Validator::make($request->all(), [
'show_id' => ['required', 'numeric', 'exists:shows,id'],
'date' => ['required', 'date']
]);
if(!$validator->passes())
return Redirect::back()->withErrors($validator->errors());
$request->merge([
'date' => date('Y-m-d H:i:s', strtotime($request->get('date')))
]);
$date = ShowDate::create($request->all());
if(empty($date)) {
session()->flash('error', 'Unable to create a new show date');
return Redirect::route('panel.ums');
}
session()->flash('success', 'Successfully created show date.');
return Redirect::route('panel.shows');
}
public function info($id) {
$date = ShowDate::findOrFail($id);
$filled = DB::table('seats')->where('show_id', '=', $date->show_id)->where('date', '=', $date->date)->count();
return view('panel.shows.info')->with([
'date' => $date,
'show' => Show::findOrFail($date->show_id),
'filled' => $filled
]);
}
public function delete($id) {
$show = ShowDate::findOrFail($id);
if($show->delete()) {
session()->flash('success', 'Successfully deleted show date.');
} else {
session()->flash('error', 'Unable to delete show date.');
}
return Redirect::back();
}
}

View file

@ -3,7 +3,7 @@ namespace App\Http\Controllers\Panel;
use App\ChangeEmail;
use App\Http\Controllers\Controller;
use App\Notifications\SendMailChange;
use App\Mail\EmailChange;
use App\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
@ -33,7 +33,7 @@ class UMSController extends Controller
public function index($page = 1)
{
$pages = User::count();
$pages = (int) ceil($pages/25);
$pages = (int) ceil($pages/10);
if($pages < 1 && $page == 1)
$page = 1;
@ -42,7 +42,7 @@ class UMSController extends Controller
'page' => ($pages > 0 ? $pages : 1)
]);
$data = User::select('id', 'uuid', 'last_active', 'is_admin', 'is_root')->get();
$data = User::select('id', 'uuid', 'last_active', 'is_admin', 'is_root', 'email_verified_at')->get();
return view('panel.ums.index')->with([
'users' => $data,
'page' => $page,
@ -62,6 +62,7 @@ class UMSController extends Controller
if(!$user->is_root && !$user->is_admin)
return Redirect::route('panel.ums');
$user = User::findOrFail($id);
return view('panel.ums.edit')->with([
'user' => $user
]);
@ -86,27 +87,50 @@ class UMSController extends Controller
'token' => Str::random(12)
]);
Mail::to($user)->send(new SendMailChange($change));
Mail::to($request->get('email'))->send(new EmailChange($change));
die('Send! Email: '.$request->get('email'));
}
$validator = Validator::make($request->all(), [
'verified' => ['required', 'boolean']
]);
if(!$validator->passes())
return Redirect::back()->withErrors($validator);
if($request->get('verified')) {
$user->email_verified_at = empty($user->email_verified_at) ? date('Y-m-d H:i:s') : $user->email_verified_at;
} else {
$user->email_verified_at = null;
}
if(Auth::user()->is_root) {
$validator = Validator::make($request->all(), [
'is_admin' => ['required', 'boolean'],
'is_root' => ['required', 'boolean']
'admin' => ['required', 'numeric', 'min:0', 'max:2'],
]);
if(!$validator->passes())
if (!$validator->passes())
return Redirect::back()->withErrors($validator);
$user->is_admin = $request->get('is_admin');
$user->is_root = $request->get('is_root');
if($user->save()) {
session()->flash('success', 'Successfully edited user: '.$user->uuid);
$admin = $request->get('admin');
if ($admin == 1) {
$user->is_admin = 1;
$user->is_root = 0;
} else if($admin == 2) {
$user->is_admin = 0;
$user->is_root = 1;
} else {
session()->flash('error', 'Unable to edit user: '.$user->uuid);
$user->is_admin = 0;
$user->is_root = 0;
}
}
if($user->save()) {
session()->flash('success', 'Successfully edited user: '.$user->username());
} else {
session()->flash('error', 'Unable to edit user: '.$user->username());
}
return Redirect::route('panel.ums');
}