This commit is contained in:
Ludovic CANDELLIER
2022-04-13 23:49:48 +02:00
parent 6e133246cf
commit 9c2b9cf02e
56 changed files with 948 additions and 336 deletions

View File

@@ -0,0 +1,69 @@
<?php
namespace App\Http\Controllers\Admin\Shop;
use Illuminate\Http\Request;
use App\Repositories\Shop\Merchandises;
use App\Repositories\Shop\TagGroups;
use App\Datatables\Shop\MerchandisesDataTable;
use App\Models\Shop\Merchandise;
class MerchandiseController extends Controller
{
public function index(MerchandisesDataTable $dataTable)
{
return $dataTable->render('Admin.Shop.Merchandises.list');
}
public function create()
{
$data['tags_list'] = TagGroups::getTreeTags();
return view('Admin.Shop.Merchandises.create', $data);
}
public function store(Request $request)
{
$data = $request->all();
Merchandises::storeFull($data);
return redirect()->route('Admin.Shop.Merchandises.index');
}
public function show($id)
{
return view('Admin.Shop.Merchandises.view', Merchandises::get($id));
}
public function edit($id)
{
$data['merchandise'] = Merchandises::getFull($id);
$data['tags_list'] = TagGroups::getTreeTags();
return view('Admin.Shop.Merchandises.edit', $data);
}
public function destroy($id)
{
return Merchandises::destroy($id);
}
public function getImages(Request $request, $id = false, $can_edit = true)
{
$id = $id ? $id : $request->input('id');
$data['images'] = Merchandises::getImages($id);
$data['can_edit'] = $can_edit;
return view('components.uploader.mini-gallery-items', $data);
}
public function deleteImage(Request $request)
{
$id = $request->input('id');
$index = $request->input('index');
return Merchandises::deleteImage($id, $index);
}
public function exportExcel()
{
return Merchandises::exportExcel();
}
}

View File

@@ -6,8 +6,6 @@ use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request;
use App\Repositories\Layout;
use Carbon\Carbon;
class LoginController extends Controller
{
@@ -22,25 +20,11 @@ class LoginController extends Controller
public function showLoginForm()
{
$data = \App\Repositories\Config::init();
return view('auth.login', $data);
return view('Shop.auth.login', $data);
}
public function authenticated(Request $request, $user)
{
$request->session()->forget('password_expired_id');
if ($user->passwordSecurity->password_expiry_days > 0) {
$password_updated_at = $user->passwordSecurity->password_updated_at;
$password_expiry_days = $user->passwordSecurity->password_expiry_days;
$password_expiry_at = Carbon::parse($password_updated_at)->addDays($password_expiry_days);
if ($password_expiry_at->lessThan(Carbon::now())) {
$request->session()->put('password_expired_id', $user->id);
auth()->logout();
return redirect('/reset-password')->with('message', "Your password is expired. You need to change your password.");
}
}
return redirect()->intended($this->redirectPath());
}

View File

@@ -0,0 +1,24 @@
<?php
namespace App\Http\Controllers\Shop\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\View\Factory;
use Illuminate\Contracts\View\View;
use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
class ForgotPasswordController extends Controller
{
use SendsPasswordResetEmails;
/**
* Get password request form view.
*
* @return Application|Factory|View
*/
public function showLinkRequestForm()
{
return view('boilerplate::auth.passwords.email');
}
}

View File

@@ -40,49 +40,43 @@ class LoginController extends Controller
*/
public function __construct()
{
$this->middleware('customer')->except('logout');
// $this->middleware('guest')->except('logout');
}
public function showLoginForm()
{
$data['url'] = route('Shop.Auth.login.post');
return view('Shop.Auth.login', $data);
$data['url'] = route('Shop.login.post');
return view('Shop.auth.login', $data);
}
protected function guard()
{
return Auth::guard('customer');
return Auth::guard('guest');
}
public function login(Request $request)
{
$this->validate($request, [
'username' => 'required|email',
'password' => 'required|min:6'
'password' => 'required|min:8'
]);
if (Auth::guard('customer')->attempt(['username' => $request->username, 'password' => $request->password], $request->get('remember'))) {
return redirect()->intended(route('Conferencing.event'));
if (Auth::guard('guest')->attempt(['username' => $request->username, 'password' => $request->password], $request->get('remember'))) {
return redirect()->intended(route('home'));
}
return back()->withInput($request->only('username', 'remember'));
}
public function logout(Request $request)
{
// Get the session key for this user
$sessionKey = $this->guard()->getName();
$this->guard()->logout();
// Delete single session key (just for this user)
$request->session()->forget($sessionKey);
return redirect()->route('home');
}
public function username()
{
return 'username';
return 'email';
}
}

View File

@@ -0,0 +1,161 @@
<?php
namespace App\Http\Controllers\Shop\Auth;
use App\Http\Controllers\Controller;
use Carbon\Carbon;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\View\Factory;
use Illuminate\Contracts\View\View;
use Illuminate\Foundation\Auth\EmailVerificationRequest;
use Illuminate\Foundation\Auth\RegistersUsers;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Routing\Redirector;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator;
use Sebastienheyd\Boilerplate\Rules\Password;
class RegisterController extends Controller
{
use RegistersUsers;
/**
* Where to redirect users after registration.
*
* @var string
*/
protected $redirectTo;
/**
* Is registering the first user ?
*
* @var bool
*/
protected $firstUser;
/**
* Create a new controller instance.
*/
public function __construct()
{
$userModel = config('auth.providers.users.model');
$this->firstUser = $userModel::whereRoleIs('admin')->count() === 0;
}
/**
* Return route where to redirect after login success.
*
* @return string
*/
protected function redirectTo()
{
return route(config('boilerplate.app.redirectTo', 'boilerplate.dashboard'));
}
/**
* Get a validator for an incoming registration request.
*
* @param array $data
* @return \Illuminate\Contracts\Validation\Validator
*/
protected function validator(array $data)
{
return Validator::make($data, [
'last_name' => 'required|max:255',
'first_name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users,email,NULL,id,deleted_at,NULL',
'password' => ['required', 'confirmed', new Password()],
]);
}
/**
* Show the application registration form.
*
* @return Application|Factory|View
*/
public function showRegistrationForm()
{
if (! $this->firstUser && ! config('boilerplate.auth.register')) {
abort('404');
}
return view('boilerplate::auth.register', ['firstUser' => $this->firstUser]);
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return mixed
*/
protected function create(array $data)
{
if (! $this->firstUser && ! config('boilerplate.auth.register')) {
abort('404');
}
$userModel = config('auth.providers.users.model');
$roleModel = config('laratrust.models.role');
$user = $userModel::withTrashed()->updateOrCreate(['email' => $data['email']], [
'active' => true,
'first_name' => $data['first_name'],
'last_name' => $data['last_name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
'last_login' => Carbon::now()->toDateTimeString(),
]);
if ($this->firstUser) {
$admin = $roleModel::whereName('admin')->first();
$user->attachRole($admin);
} else {
$user->restore();
$role = $roleModel::whereName(config('boilerplate.auth.register_role'))->first();
$user->roles()->sync([$role->id]);
}
return $user;
}
/**
* Show message to verify e-mail.
*
* @return Application|Factory|View
*/
public function emailVerify()
{
if (Auth::user()->hasVerifiedEmail()) {
return redirect(route(config('boilerplate.app.redirectTo', 'boilerplate.dashboard')));
}
return view('boilerplate::auth.verify-email');
}
/**
* If e-mail has been verified, redirect to the given route.
*
* @param EmailVerificationRequest $request
* @return Application|RedirectResponse|Redirector
*/
public function emailVerifyRequest(EmailVerificationRequest $request)
{
$request->fulfill();
return redirect(route(config('boilerplate.app.redirectTo', 'boilerplate.dashboard')));
}
/**
* Send verification e-mail.
*
* @param Request $request
* @return RedirectResponse
*/
public function emailSendVerification(Request $request)
{
$request->user()->sendEmailVerificationNotification();
return back()->with('message', 'Verification link sent!');
}
}

View File

@@ -7,6 +7,8 @@ use App\Http\Controllers\Controller;
use App\Repositories\Core\User\ShopCart;
use App\Repositories\Shop\Offers;
use App\Repositories\Shop\Orders;
class BasketController extends Controller
{
@@ -52,6 +54,12 @@ class BasketController extends Controller
return ShopCart::count();
}
public function getSummary()
{
$data = ShopCart::getSummary();
return response()->json(['data' => $data, 'code' => '200']);
}
public function order(Request $request)
{
ShopCart::clear();
@@ -60,8 +68,6 @@ class BasketController extends Controller
$data['user_id'] = Users::getId();
Orders::newOrder($data);
return response()->json(['code' => '200']);
// return redirect()->route('ThirdParty.select');
}
public function clearBasket()

View File

@@ -0,0 +1,13 @@
<?php
namespace App\Http\Controllers\Commercial;
use App\Http\Controllers\Controller as ParentController;
class Controller extends ParentController
{
public function __construct()
{
// $this->middleware('auth:guest');
}
}

View File

@@ -6,19 +6,11 @@ use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Repositories\Shop\Articles;
use App\Repositories\Shop\Categories;
use App\Repositories\Shop\Offers;
use App\Repositories\Shop\Tags;
use App\Repositories\Shop\TagGroups;
use App\Repositories\Shop\Homepages;
class HomeController extends Controller
{
public function __construct()
{
// $this->middleware('auth');
}
public function index(Request $request)
{
$input = $request->input();