Added Shows, ActionFoto's and Attraction Status
This commit is contained in:
parent
b105bd7db7
commit
ad320963fc
30 changed files with 1190 additions and 503 deletions
117
app/Http/Controllers/Profile/ChangeController.php
Normal file
117
app/Http/Controllers/Profile/ChangeController.php
Normal file
|
@ -0,0 +1,117 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Profile;
|
||||
|
||||
use App\ChangeEmail;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Notifications\SendMailChange;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Facades\Redirect;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class ChangeController 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()
|
||||
{
|
||||
return view('profile.change');
|
||||
}
|
||||
|
||||
public function changePassword(Request $request) {
|
||||
$validator = Validator::make($request->all(), [
|
||||
'password' => ['required', 'max:255'],
|
||||
'new_password' => ['required', 'min:6', 'confirmed', 'regex:/[a-z]/', 'regex:/[A-Z]/', 'regex:/[0-9]/', 'regex:/[@$!%*#?&]/'],
|
||||
'new_confirm_password' => ['required', 'same:new_password']
|
||||
]);
|
||||
|
||||
if(!$validator->passes())
|
||||
return Redirect::back()->withErrors($validator);
|
||||
|
||||
$user = Auth::user();
|
||||
if(!Hash::check($request->get('password'), $user->password)) {
|
||||
$validator->getMessageBag()->add('pass_password', 'Wrong user password.');
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$user->password = Hash::make($request->get('new_password'));
|
||||
if(!$user->save()) {
|
||||
$validator->getMessageBag()->add('new_password', 'Unable to change password.');
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
session()->flash('pass_success', 'Successfully changed password.');
|
||||
return Redirect::back();
|
||||
}
|
||||
|
||||
public function changeEmail(Request $request) {
|
||||
$validator = Validator::make($request->all(), [
|
||||
'password' => ['required', 'max:255'],
|
||||
'new_email' => ['required', 'email', 'unique:users,email', 'max:255'],
|
||||
'new_confirm_email' => ['required', 'same:new_email']
|
||||
]);
|
||||
|
||||
if(!$validator->passes())
|
||||
return Redirect::back()->withErrors($validator);
|
||||
|
||||
$user = Auth::user();
|
||||
if(!Hash::check($request->get('password'), $user->password)) {
|
||||
$validator->getMessageBag()->add('email_password', 'Wrong user password.');
|
||||
return Redirect::back()->withErrors($validator);
|
||||
}
|
||||
|
||||
$user->email = $request->get('new_email');
|
||||
$change = ChangeEmail::create([
|
||||
'user_id' => $user->id,
|
||||
'email' => $request->get('new_email'),
|
||||
'token' => Str::random(12)
|
||||
]);
|
||||
|
||||
Mail::to($user)->send(new SendMailChange($change));
|
||||
session()->flash('email_success', 'Successfully requested email change');
|
||||
return Redirect::back();
|
||||
}
|
||||
|
||||
public function verifyEmail($id, $token, $email) {
|
||||
if(Auth::id() != $id) {
|
||||
session()->flash('email_error', 'Incorrect email change request: '.$email);
|
||||
return Redirect::route('panel.change');
|
||||
}
|
||||
|
||||
$user = Auth::user();
|
||||
$model = ChangeEmail::where([
|
||||
'user_id' => $user->id,
|
||||
'token' => $token,
|
||||
'email' => $email
|
||||
])->first();
|
||||
|
||||
if(empty($model)) {
|
||||
session()->flash('email_error', 'Unable to change email address to: '.$email);
|
||||
return Redirect::route('panel.change');
|
||||
}
|
||||
|
||||
$user->email = $email;
|
||||
$user->save();
|
||||
$model->delete();
|
||||
session()->flash('email_success', 'Successfully changed email address to: '.$email);
|
||||
return Redirect::route('panel.change');
|
||||
}
|
||||
|
||||
}
|
31
app/Http/Controllers/Profile/HomeController.php
Normal file
31
app/Http/Controllers/Profile/HomeController.php
Normal file
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Profile;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
|
||||
class HomeController 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()
|
||||
{
|
||||
return view('profile.home');
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
76
app/Http/Controllers/Profile/SecurityController.php
Normal file
76
app/Http/Controllers/Profile/SecurityController.php
Normal file
|
@ -0,0 +1,76 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Profile;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Session;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Jenssegers\Agent\Agent;
|
||||
|
||||
class SecurityController extends Controller
|
||||
{
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware(['mobile', 'auth', 'verified', '2fa']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the application dashboard.
|
||||
*
|
||||
* @param Request $request
|
||||
* @param int $page
|
||||
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
* @throws \PragmaRX\Google2FA\Exceptions\IncompatibleWithGoogleAuthenticatorException
|
||||
* @throws \PragmaRX\Google2FA\Exceptions\InvalidCharactersException
|
||||
*/
|
||||
public function index(Request $request, $page = 1)
|
||||
{
|
||||
$google2fa = new \PragmaRX\Google2FALaravel\Google2FA($request);
|
||||
$tfa = $google2fa->isActivated();
|
||||
$pages = Session::where('user_id', Auth::id())->count();
|
||||
$pages = (int) ceil($pages/10);
|
||||
if($page > $pages)
|
||||
return redirect()->route('profile.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()];
|
||||
|
||||
if(!$tfa) {
|
||||
if(!session()->has('redirected')) {
|
||||
$secret = $google2fa->generateSecretKey();
|
||||
session()->flash('google_secret', $secret);
|
||||
} else {
|
||||
$secret = session()->get('google_secret');
|
||||
session()->keep(['google_secret']);
|
||||
}
|
||||
|
||||
$google2fa = new \PragmaRX\Google2FAQRCode\Google2FA();
|
||||
$QR = $google2fa->getQRCodeInline(
|
||||
config('app.name'),
|
||||
Auth::user()->email,
|
||||
$secret
|
||||
);
|
||||
|
||||
$array['QRCode'] = $QR;
|
||||
return view('profile.security')->with($array);
|
||||
}
|
||||
|
||||
return view('profile.security')->with($array);
|
||||
}
|
||||
|
||||
public function session($id)
|
||||
{
|
||||
if(session()->getId() === $id)
|
||||
return redirect()->route('profile.security');
|
||||
|
||||
Session::where(['id' => $id, 'user_id' => Auth::id()])->forceDelete();
|
||||
return redirect()->route('profile.security');
|
||||
}
|
||||
|
||||
}
|
Reference in a new issue