Initial commit

This commit is contained in:
Developer
2025-04-21 16:03:20 +02:00
commit 2832896157
22874 changed files with 3092801 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Auth\Middleware\Authenticate as Middleware;
class Authenticate extends Middleware
{
/**
* Get the path the user should be redirected to when they are not authenticated.
*
* @param \Illuminate\Http\Request $request
* @return string|null
*/
protected function redirectTo($request)
{
if (! $request->expectsJson()) {
return route('login');
}
}
}

View File

@@ -0,0 +1,43 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\URL;
class CheckSubscribeUser
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle(Request $request, Closure $next)
{
if (! $request->user() ||
($request->user() instanceof MustVerifyEmail &&
! $request->user()->hasVerifiedEmail())) {
return $request->expectsJson()
? abort(403, 'Ваш адрес электронной почты не подтвержден.')
: Redirect::guest(URL::route('verification.notice'));
}
// if($request->path() === '/' && empty(auth()->user())){
// return $next($request);
// }
// abort_if(empty(auth()->user()), 403);
// if (auth()->user()->checkClosedAccess()) {
// return redirect(route('setting.tarif'))->with('error', 'Оплатите подписку!');
// }
return $next($request);
}
}

View File

@@ -0,0 +1,17 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Cookie\Middleware\EncryptCookies as Middleware;
class EncryptCookies extends Middleware
{
/**
* The names of the cookies that should not be encrypted.
*
* @var array
*/
protected $except = [
//
];
}

View File

@@ -0,0 +1,34 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Contracts\Auth\MustVerifyEmail;
class EnsureEmailIsVerified
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string|null $redirectToRoute
* @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse|null
*/
public function handle($request, Closure $next, $redirectToRoute = null)
{
// dd($request);
// dd(auth()->user());
if(!auth()->user()){
return $next($request);
}
if (! auth()->user() ||
(auth()->user() instanceof MustVerifyEmail &&
! auth()->user()->hasVerifiedEmail())) {
return response()->json(['message' => 'Your email address is not verified.'], 409);
}
return $next($request);
}
}

View File

@@ -0,0 +1,117 @@
<?php
namespace App\Http\Middleware;
use App\Models\User;
use Inertia\Middleware;
use Illuminate\Http\Request;
use App\Domain\Subscriptions\Service\SubscriptionService;
use Illuminate\Database\Eloquent\Builder;
class HandleInertiaRequests extends Middleware
{
/**
* The root template that's loaded on the first page visit.
*
* @see https://inertiajs.com/server-side-setup#root-template
* @var string
*/
protected $rootView = 'app';
/**
* Determines the current asset version.
*
* @see https://inertiajs.com/asset-versioning
* @param \Illuminate\Http\Request $request
* @return string|null
*/
public function version(Request $request)
{
return parent::version($request);
}
/**
* Defines the props that are shared by default.
*
* @see https://inertiajs.com/shared-data
* @param \Illuminate\Http\Request $request
* @return array
*/
public function share(Request $request)
{
$with_sidebar = 0;
if ($request->routeIs('*.layoutsidebar.*') || $request->routeIs('feeds.layoutsidebar')) {
$with_sidebar = 1;
}
return array_merge(parent::share($request), [
'auth' => function () use ($request) {
return [
'user' => $request->user() ? [
'id' => $request->user()->id,
'name' => $request->user()->name,
'username' => $request->user()->username,
'first_name' => $request->user()->first_name,
'last_name' => $request->user()->last_name,
'email' => $request->user()->email,
'user_char' => $request->user()->user_char,
'color' => $request->user()->color,
'photo_path' => $request->user()->photo_path,
'private' => $request->user()->private,
'banner_path' => $request->user()->banner_path,
] : null,
];
},
'balance' => function () use ($request) {
if($request->user()){
return SubscriptionService::calculate($request->user()->id);
}
return 0;
},
'leaders' => function () use ($with_sidebar) {
if( $with_sidebar ){
$leaders = collect();
if(nova_get_setting('vote_paid_mode')){
foreach (SubscriptionService::leaders() as $leader) {
if($leader->vote_count){
$lUser = User::find($leader->user_id);
$lUser->name = $lUser->name;
$lUser->countVote = $leader->vote_count;
$leaders[] = $lUser;
}
}
}else{
$leaders = SubscriptionService::freeLeaders();
}
return $leaders;
}
},
'is_notify' => function () use ($request) {
if($request->user()){
return $request->user()->unreadNotifications()->count();
}
return 0;
},
'message_reading_count' => function () use ($request) {
if($request->user()){
return $request->user()->chat_rooms()->whereHas('latestMessage', function (Builder $query) use($request) {
$query->where('is_reading', false)->where('user_id', '<>', $request->user()->id);
})->count();
}
return 0;
},
'sidebar_layout' => $with_sidebar,
'paid_mode' => function () {
return nova_get_setting('vote_paid_mode');
},
'flash' => function () use ($request) {
return [
'success' => $request->session()->get('success'),
'error' => $request->session()->get('error'),
'status' => $request->session()->get('status'),
];
},
]);
}
}

View File

@@ -0,0 +1,17 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance as Middleware;
class PreventRequestsDuringMaintenance extends Middleware
{
/**
* The URIs that should be reachable while maintenance mode is enabled.
*
* @var array
*/
protected $except = [
//
];
}

View File

@@ -0,0 +1,31 @@
<?php
namespace App\Http\Middleware;
use App\Providers\RouteServiceProvider;
use Closure;
use Illuminate\Support\Facades\Auth;
class RedirectIfAuthenticated
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string[]|null ...$guards
* @return mixed
*/
public function handle($request, Closure $next, ...$guards)
{
$guards = empty($guards) ? [null] : $guards;
foreach ($guards as $guard) {
if (Auth::guard($guard)->check()) {
return redirect(RouteServiceProvider::HOME);
}
}
return $next($request);
}
}

View File

@@ -0,0 +1,18 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\TrimStrings as Middleware;
class TrimStrings extends Middleware
{
/**
* The names of the attributes that should not be trimmed.
*
* @var array
*/
protected $except = [
'password',
'password_confirmation',
];
}

View File

@@ -0,0 +1,20 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Http\Middleware\TrustHosts as Middleware;
class TrustHosts extends Middleware
{
/**
* Get the host patterns that should be trusted.
*
* @return array
*/
public function hosts()
{
return [
$this->allSubdomainsOfApplicationUrl(),
];
}
}

View File

@@ -0,0 +1,23 @@
<?php
namespace App\Http\Middleware;
use Fideloper\Proxy\TrustProxies as Middleware;
use Illuminate\Http\Request;
class TrustProxies extends Middleware
{
/**
* The trusted proxies for this application.
*
* @var array
*/
protected $proxies = '**';
/**
* The headers that should be used to detect proxies.
*
* @var int
*/
protected $headers = Request::HEADER_X_FORWARDED_AWS_ELB;
}

View File

@@ -0,0 +1,17 @@
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;
class VerifyCsrfToken extends Middleware
{
/**
* The URIs that should be excluded from CSRF verification.
*
* @var array
*/
protected $except = [
//
];
}