Lot's of bug fixes
This commit is contained in:
parent
ad320963fc
commit
7718ed6c32
196 changed files with 51167 additions and 3010 deletions
|
@ -48,6 +48,16 @@ class LoginController extends Controller
|
|||
return 'uuid';
|
||||
}
|
||||
|
||||
public function showLoginForm()
|
||||
{
|
||||
$urlPrevious = url()->previous();
|
||||
$urlBase = url()->to('/');
|
||||
if(($urlPrevious != $urlBase . '/login') && (substr($urlPrevious, 0, strlen($urlBase)) === $urlBase))
|
||||
session()->put('url.intended', $urlPrevious);
|
||||
|
||||
return view('auth.login');
|
||||
}
|
||||
|
||||
public function login(Request $request)
|
||||
{
|
||||
$this->validateLogin($request);
|
||||
|
@ -67,15 +77,15 @@ class LoginController extends Controller
|
|||
return redirect()->intended('home');
|
||||
} else {
|
||||
$this->incrementLoginAttempts($request);
|
||||
return response()->json([
|
||||
'error' => 'This account is not activated.'
|
||||
], 401);
|
||||
return view('auth.login')->withErrors([
|
||||
'error' => 'Wrong credentials.'
|
||||
]);
|
||||
}
|
||||
} else {
|
||||
$this->incrementLoginAttempts($request);
|
||||
return response()->json([
|
||||
'error' => 'Credentials do not match our database.'
|
||||
], 401);
|
||||
return view('auth.login')->withErrors([
|
||||
'error' => 'Wrong credentials.'
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -68,7 +68,7 @@ class RegisterController extends Controller
|
|||
protected function create(array $data)
|
||||
{
|
||||
return User::create([
|
||||
'uuid' => '', Cache::getUUID($data['username']),
|
||||
'uuid' => Cache::getUUID($data['username']),
|
||||
'email' => $data['email'],
|
||||
'password' => bcrypt($data['password'])
|
||||
]);
|
||||
|
|
45
app/Http/Controllers/ControlController.php
Normal file
45
app/Http/Controllers/ControlController.php
Normal file
|
@ -0,0 +1,45 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
|
||||
use App\Color\MinecraftColor;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Redirect;
|
||||
|
||||
class ControlController extends Controller
|
||||
{
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware(['auth', 'verified', '2fa']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the application dashboard.
|
||||
*
|
||||
* @param $attraction_id
|
||||
* @param $pin
|
||||
* @return \Illuminate\Contracts\Support\Renderable
|
||||
*/
|
||||
public function index($attraction_id, $pin)
|
||||
{
|
||||
if(!preg_match('/^([0-9]){9}$/', $pin))
|
||||
return Redirect::route('status');
|
||||
|
||||
$data = DB::table('attraction')->select('name')->where('id', '=', $attraction_id)->first();
|
||||
if(empty($data))
|
||||
return Redirect::route('status');
|
||||
|
||||
return view('control')->with([
|
||||
'attraction_id' => $attraction_id,
|
||||
'attraction_name' => MinecraftColor::stripColor( $data->name),
|
||||
'pin' => $pin
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
|
@ -5,6 +5,7 @@ namespace App\Http\Controllers;
|
|||
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Redirect;
|
||||
|
||||
class HomeController extends Controller
|
||||
{
|
||||
|
@ -47,4 +48,9 @@ class HomeController extends Controller
|
|||
]);
|
||||
}
|
||||
|
||||
public function store()
|
||||
{
|
||||
return Redirect::to(env('STORE_URL', 'https://sbdplugins.nl'));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
70
app/Http/Controllers/OpenAudioMCController.php
Normal file
70
app/Http/Controllers/OpenAudioMCController.php
Normal file
|
@ -0,0 +1,70 @@
|
|||
<?php
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Redirect;
|
||||
|
||||
class OpenAudioMCController extends Controller
|
||||
{
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware(['auth', 'verified', '2fa']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the application dashboard.
|
||||
*
|
||||
* @return \Illuminate\Contracts\Support\Renderable
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$url = env('OPENAUDIOMC_URL', '');
|
||||
if(empty($url))
|
||||
return view('openaudiomc')->with(['type' => 1]);
|
||||
|
||||
if(!filter_var($url, FILTER_VALIDATE_URL))
|
||||
return view('openaudiomc')->with(['type' => 1]);
|
||||
|
||||
$key = explode('/', $url);
|
||||
$key = $key[count($key) - 1];
|
||||
if(!preg_match('/^([a-zA-Z0-9]{8})\-([a-zA-Z0-9]{4})\-([a-zA-Z0-9]{4})\-([a-zA-Z0-9]{4})\-([a-zA-Z0-9]{12})$/', $key))
|
||||
return view('openaudiomc')->with(['type' => 1]);
|
||||
|
||||
$url = str_replace('%UUID%', Auth::user()->fixedUUID(), $url);
|
||||
$result = file_get_contents($url);
|
||||
if(!$this->isJson($result))
|
||||
return view('openaudiomc')->with(['type' => 1]);
|
||||
|
||||
$json = json_decode($result);
|
||||
if(isset($json->errors) && !empty($json->errors))
|
||||
return view('openaudiomc')->with(['type' => 2]);
|
||||
|
||||
if(!isset($json->response))
|
||||
return view('openaudiomc')->with(['type' => 2]);
|
||||
|
||||
$response = $json->response;
|
||||
if(!isset($response->isConnected) || !isset($response->sessionUrl))
|
||||
return view('openaudiomc')->with(['type' => 2]);
|
||||
|
||||
if($response->isConnected)
|
||||
return view('openaudiomc')->with(['type' => 3]);
|
||||
|
||||
$link = $json->response->sessionUrl;
|
||||
header('Location: '.$link);
|
||||
exit;
|
||||
}
|
||||
|
||||
private function isJson($string) {
|
||||
if(empty($string))
|
||||
return false;
|
||||
|
||||
json_decode($string);
|
||||
return (json_last_error() == JSON_ERROR_NONE);
|
||||
}
|
||||
|
||||
}
|
|
@ -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
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
63
app/Http/Controllers/Panel/MessageController.php
Normal file
63
app/Http/Controllers/Panel/MessageController.php
Normal 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();
|
||||
}
|
||||
|
||||
}
|
143
app/Http/Controllers/Panel/ShowController.php
Normal file
143
app/Http/Controllers/Panel/ShowController.php
Normal 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();
|
||||
}
|
||||
|
||||
}
|
125
app/Http/Controllers/Panel/ShowsController.php
Normal file
125
app/Http/Controllers/Panel/ShowsController.php
Normal 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();
|
||||
}
|
||||
|
||||
}
|
|
@ -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');
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ namespace App\Http\Controllers\Profile;
|
|||
|
||||
use App\ChangeEmail;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Mail\EmailChange;
|
||||
use App\Notifications\SendMailChange;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
@ -84,7 +85,7 @@ class ChangeController extends Controller
|
|||
'token' => Str::random(12)
|
||||
]);
|
||||
|
||||
Mail::to($user)->send(new SendMailChange($change));
|
||||
Mail::to($user->email)->send(new EmailChange($change));
|
||||
session()->flash('email_success', 'Successfully requested email change');
|
||||
return Redirect::back();
|
||||
}
|
||||
|
@ -92,7 +93,7 @@ class ChangeController extends Controller
|
|||
public function verifyEmail($id, $token, $email) {
|
||||
if(Auth::id() != $id) {
|
||||
session()->flash('email_error', 'Incorrect email change request: '.$email);
|
||||
return Redirect::route('panel.change');
|
||||
return Redirect::route('change');
|
||||
}
|
||||
|
||||
$user = Auth::user();
|
||||
|
@ -104,14 +105,14 @@ class ChangeController extends Controller
|
|||
|
||||
if(empty($model)) {
|
||||
session()->flash('email_error', 'Unable to change email address to: '.$email);
|
||||
return Redirect::route('panel.change');
|
||||
return Redirect::route('change');
|
||||
}
|
||||
|
||||
$user->email = $email;
|
||||
$user->save();
|
||||
$model->delete();
|
||||
session()->flash('email_success', 'Successfully changed email address to: '.$email);
|
||||
return Redirect::route('panel.change');
|
||||
return Redirect::route('change');
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -36,7 +36,7 @@ class SecurityController extends Controller
|
|||
$pages = Session::where('user_id', Auth::id())->count();
|
||||
$pages = (int) ceil($pages/10);
|
||||
if($page > $pages)
|
||||
return redirect()->route('profile.security', ['page' => $pages]);
|
||||
return redirect()->route('security', ['page' => $pages]);
|
||||
|
||||
$sessions = Session::where('user_id', Auth::id())->where('id', '!=', session()->getId())->skip(($page - 1)*10)->take(($page != 1 ? 10 : 9))->orderBy('last_activity', 'desc')->get();
|
||||
$array = ['TFA' => $tfa, 'pages' => $pages, 'page' => $page, 'sessions' => $sessions, 'agent' => new Agent()];
|
||||
|
@ -67,10 +67,10 @@ class SecurityController extends Controller
|
|||
public function session($id)
|
||||
{
|
||||
if(session()->getId() === $id)
|
||||
return redirect()->route('profile.security');
|
||||
return redirect()->route('security');
|
||||
|
||||
Session::where(['id' => $id, 'user_id' => Auth::id()])->forceDelete();
|
||||
return redirect()->route('profile.security');
|
||||
return redirect()->route('security');
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -30,6 +30,7 @@ class RidecountController extends Controller
|
|||
$top10 = DB::table(DB::raw('ridecount, (SELECT @row_number:=0) AS t'))->select('uuid', DB::raw('SUM(`count`) AS `count`'), DB::raw('(@row_number:=@row_number + 1) AS `num`'))
|
||||
->where('attractionId', '=', $attraction_id)
|
||||
->whereRaw('YEARWEEK(date, 1) = YEARWEEK(CURDATE(), 1)')
|
||||
->whereRaw('YEAR(date) = YEAR(CURDATE())')
|
||||
->groupBy('uuid')
|
||||
->orderByDesc('count')
|
||||
->take(10)->get()->all();
|
||||
|
|
|
@ -29,15 +29,7 @@ class ShowController extends Controller
|
|||
*/
|
||||
public function index()
|
||||
{
|
||||
$shows = Show::join('show_dates', 'show_dates.show_id', '=', 'shows.id')
|
||||
->whereRaw('`show_dates`.`date` > CURDATE()')
|
||||
->select('shows.*')->get()->all();
|
||||
|
||||
$data = [];
|
||||
foreach($shows as $show)
|
||||
if(!empty($show->getShowDates(Auth::user()->uuid)))
|
||||
array_push($data, $show);
|
||||
|
||||
$shows = DB::select(DB::raw('SELECT t1.* FROM `shows` AS t1 RIGHT JOIN `show_dates` AS t2 ON t1.`id` = t2.`show_id` WHERE t2.`date` > CURDATE() GROUP BY t1.`id`'));
|
||||
return view('show')->with([
|
||||
'shows' => $shows
|
||||
]);
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Panel;
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Redirect;
|
||||
|
@ -44,7 +43,7 @@ class ToggleTwoFactorController extends Controller
|
|||
]);
|
||||
|
||||
session()->flash('success', 'Successfully enabled 2FA');
|
||||
return redirect()->route('account');
|
||||
return redirect()->route('security');
|
||||
} else {
|
||||
if(!$validator->passes())
|
||||
return Redirect::back()->withErrors($validator);
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Panel;
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Redirect;
|
||||
|
|
|
@ -64,6 +64,7 @@ class Kernel extends HttpKernel
|
|||
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
|
||||
'2fa' => \App\Http\Middleware\TwoFactorAuthentication::class,
|
||||
'mobile' => \App\Http\Middleware\NoMobile::class,
|
||||
'admin' => \App\Http\Middleware\AdminOnly::class,
|
||||
];
|
||||
|
||||
/**
|
||||
|
|
25
app/Http/Middleware/AdminOnly.php
Normal file
25
app/Http/Middleware/AdminOnly.php
Normal file
|
@ -0,0 +1,25 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Redirect;
|
||||
|
||||
class AdminOnly
|
||||
{
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Closure $next
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle($request, Closure $next)
|
||||
{
|
||||
if(Auth::user()->is_admin || Auth::user()->is_root)
|
||||
return $next($request);
|
||||
|
||||
return Redirect::route('home');
|
||||
}
|
||||
}
|
|
@ -17,10 +17,10 @@ class RedirectIfAuthenticated
|
|||
*/
|
||||
public function handle($request, Closure $next, $guard = null)
|
||||
{
|
||||
if (Auth::guard($guard)->check()) {
|
||||
return redirect('/home');
|
||||
}
|
||||
if (Auth::guard($guard)->check())
|
||||
return redirect()->intended('/');
|
||||
|
||||
return $next($request);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Reference in a new issue