JFIF$        dd7 

Viewing File: /home/optimaldigitaltr/public_html/src/app/Providers/AppServiceProvider.php

<?php

namespace App\Providers;

use App\Enums\Payment\GatewayCode;
use App\Enums\Status;
use App\Models\Language;
use App\Models\PaymentGateway;
use App\Models\Setting;
use App\Services\SettingService;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\ServiceProvider;
use Illuminate\Pagination\Paginator;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }

    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot(): void
    {

        Paginator::useBootstrapFive();

        try {
            $setting = SettingService::getSetting();

            view()->share([
                'languages' => Language::get(),
                'setting' => $setting,
            ]);

            SettingService::mail();
            $this->firewall($setting);
            $this->recaptcha($setting);
            $this->paymentGateway();

            Config::set('services', array_map(function ($login) {
                return Arr::except($login, 'status');
            }, $setting->social_login));

        }catch (\Exception $exception){

        }
    }


    protected function firewall(?Setting $setting): void
    {
        if(!$setting){
            return;
        }

        $firewallStatus = getArrayValue($setting->security, 'application_firewall.status') == Status::ACTIVE->value;
        Config::set('firewall.enabled', $firewallStatus);
        Config::set('firewall.middleware.ip.enabled',$firewallStatus);

        Config::set('firewall.middleware.agent.auto_block.attempts', getArrayValue($setting->security, 'application_firewall.attempts'));
        Config::set('firewall.middleware.agent.auto_block.frequency', getArrayValue($setting->security, 'application_firewall.attempts'));
        Config::set('firewall.middleware.agent.auto_block.period', (int)getArrayValue($setting->security, 'application_firewall.period') * 60);
        Config::set('firewall.middleware.agent.enabled',$firewallStatus);

        Config::set('firewall.middleware.bot.auto_block.attempts', getArrayValue($setting->security, 'application_firewall.attempts'));
        Config::set('firewall.middleware.bot.auto_block.frequency', getArrayValue($setting->security, 'application_firewall.attempts'));
        Config::set('firewall.middleware.bot.auto_block.period', (int)getArrayValue($setting->security, 'application_firewall.period') * 60);
        Config::set('firewall.middleware.bot.enabled',$firewallStatus);

        Config::set('firewall.middleware.geo.auto_block.attempts', getArrayValue($setting->security, 'application_firewall.attempts'));
        Config::set('firewall.middleware.geo.auto_block.frequency', getArrayValue($setting->security, 'application_firewall.attempts'));
        Config::set('firewall.middleware.geo.auto_block.period', (int)getArrayValue($setting->security, 'application_firewall.period') * 60);
        Config::set('firewall.middleware.geo.enabled',$firewallStatus);

        Config::set('firewall.middleware.lfi.auto_block.attempts', getArrayValue($setting->security, 'application_firewall.attempts'));
        Config::set('firewall.middleware.lfi.auto_block.frequency', getArrayValue($setting->security, 'application_firewall.attempts'));
        Config::set('firewall.middleware.lfi.auto_block.period', (int)getArrayValue($setting->security, 'application_firewall.period') * 60);
        Config::set('firewall.middleware.lfi.enabled',$firewallStatus);

        Config::set('firewall.middleware.login.auto_block.attempts', getArrayValue($setting->security, 'application_firewall.attempts'));
        Config::set('firewall.middleware.login.auto_block.frequency', getArrayValue($setting->security, 'application_firewall.attempts'));
        Config::set('firewall.middleware.login.auto_block.period', (int)getArrayValue($setting->security, 'application_firewall.period') * 60);
        Config::set('firewall.middleware.login.enabled',$firewallStatus);

        Config::set('firewall.middleware.referrer.auto_block.attempts', getArrayValue($setting->security, 'application_firewall.attempts'));
        Config::set('firewall.middleware.referrer.auto_block.frequency', getArrayValue($setting->security, 'application_firewall.attempts'));
        Config::set('firewall.middleware.referrer.auto_block.period', (int)getArrayValue($setting->security, 'application_firewall.period') * 60);
        Config::set('firewall.middleware.referrer.enabled',$firewallStatus);

        Config::set('firewall.middleware.rfi.auto_block.attempts', getArrayValue($setting->security, 'application_firewall.attempts'));
        Config::set('firewall.middleware.rfi.auto_block.frequency', getArrayValue($setting->security, 'application_firewall.attempts'));
        Config::set('firewall.middleware.rfi.auto_block.period', (int)getArrayValue($setting->security, 'application_firewall.period') * 60);
        Config::set('firewall.middleware.rfi.enabled',$firewallStatus);

        Config::set('firewall.middleware.sqli.auto_block.attempts', getArrayValue($setting->security, 'application_firewall.attempts'));
        Config::set('firewall.middleware.sqli.auto_block.frequency', getArrayValue($setting->security, 'application_firewall.attempts'));
        Config::set('firewall.middleware.sqli.auto_block.period', (int)getArrayValue($setting->security, 'application_firewall.period') * 60);
        Config::set('firewall.middleware.sqli.enabled',$firewallStatus);

        Config::set('firewall.middleware.swear.auto_block.attempts', getArrayValue($setting->security, 'application_firewall.attempts'));
        Config::set('firewall.middleware.swear.auto_block.frequency', getArrayValue($setting->security, 'application_firewall.attempts'));
        Config::set('firewall.middleware.swear.auto_block.period', (int)getArrayValue($setting->security, 'application_firewall.period') * 60);
        Config::set('firewall.middleware.swear.enabled',$firewallStatus);

        Config::set('firewall.middleware.url.auto_block.attempts', getArrayValue($setting->security, 'application_firewall.attempts'));
        Config::set('firewall.middleware.url.auto_block.frequency', getArrayValue($setting->security, 'application_firewall.attempts'));
        Config::set('firewall.middleware.url.auto_block.period', (int)getArrayValue($setting->security, 'application_firewall.period') * 60);
        Config::set('firewall.middleware.url.enabled',$firewallStatus);

        Config::set('firewall.middleware.php.auto_block.attempts', getArrayValue($setting->security, 'application_firewall.attempts'));
        Config::set('firewall.middleware.php.auto_block.frequency', getArrayValue($setting->security, 'application_firewall.attempts'));
        Config::set('firewall.middleware.php.auto_block.period', (int)getArrayValue($setting->security, 'application_firewall.period') * 60);

        Config::set('firewall.middleware.xss.auto_block.attempts', getArrayValue($setting->security, 'application_firewall.attempts'));
        Config::set('firewall.middleware.xss.auto_block.frequency', getArrayValue($setting->security, 'application_firewall.attempts'));
        Config::set('firewall.middleware.xss.auto_block.period', (int)getArrayValue($setting->security, 'application_firewall.period') * 60);
    }

    public function paymentGateway(): void
    {
        $paypal = PaymentGateway::where('code', GatewayCode::PAYPAL)->first();
        $coinbaseCommerce = PaymentGateway::where('code', GatewayCode::COINBASE_COMMERCE)->first();

        if ($coinbaseCommerce){
            Config::set('coinbase.apiKey', Arr::get($coinbaseCommerce->parameter, 'api_key'));
        }

        if ($paypal) {
            $paymentParameter = (array) $paypal->parameter ?? [];
            $config = [
                'mode' => Arr::get($paymentParameter, 'environment', 'sandbox'),
                'sandbox' => [
                    'client_id' => Arr::get($paymentParameter, 'client_id', ''),
                    'client_secret' => Arr::get($paymentParameter, 'secret', ''),
                    'app_id' => Arr::get($paymentParameter, 'app_id', ''),
                ],
                'live' => [
                    'client_id' => Arr::get($paymentParameter, 'client_id', ''),
                    'client_secret' => Arr::get($paymentParameter, 'secret', ''),
                    'app_id' => Arr::get($paymentParameter, 'app_id', ''),
                ],
                'payment_action' => env('PAYPAL_PAYMENT_ACTION', 'Sale'),
                'currency' => env('PAYPAL_CURRENCY', 'USD'),
                'notify_url' => env('PAYPAL_NOTIFY_URL', ''),
                'locale' => env('PAYPAL_LOCALE', 'en_US'),
                'validate_ssl' => env('PAYPAL_VALIDATE_SSL', true),
            ];

            Config::set('paypal', $config);
        }
    }


    public function recaptcha(?Setting $setting): void
    {
        if(!$setting){
            return;
        }
        Config::set('recaptchav3',[
            'origin' => 'https://www.google.com/recaptcha',
            'sitekey' => getArrayValue($setting->recaptcha_setting, 'key'),
            'secret' => getArrayValue($setting->recaptcha_setting, 'secret'),
            'locale' => 'en'
        ]);

    }
}
Back to Directory  nL+D550H?Mx ,D"v]qv;6*Zqn)ZP0!1 A "#a$2Qr D8 a Ri[f\mIykIw0cuFcRı?lO7к_f˓[C$殷WF<_W ԣsKcëIzyQy/_LKℂ;C",pFA:/]=H  ~,ls/9ć:[=/#f;)x{ٛEQ )~ =𘙲r*2~ a _V=' kumFD}KYYC)({ *g&f`툪ry`=^cJ.I](*`wq1dđ#̩͑0;H]u搂@:~וKL Nsh}OIR*8:2 !lDJVo(3=M(zȰ+i*NAr6KnSl)!JJӁ* %݉?|D}d5:eP0R;{$X'xF@.ÊB {,WJuQɲRI;9QE琯62fT.DUJ;*cP A\ILNj!J۱+O\͔]ޒS߼Jȧc%ANolՎprULZԛerE2=XDXgVQeӓk yP7U*omQIs,K`)6\G3t?pgjrmۛجwluGtfh9uyP0D;Uڽ"OXlif$)&|ML0Zrm1[HXPlPR0'G=i2N+0e2]]9VTPO׮7h(F*癈'=QVZDF,d߬~TX G[`le69CR(!S2!P <0x<!1AQ "Raq02Br#SCTb ?Ζ"]mH5WR7k.ۛ!}Q~+yԏz|@T20S~Kek *zFf^2X*(@8r?CIuI|֓>^ExLgNUY+{.RѪ τV׸YTD I62'8Y27'\TP.6d&˦@Vqi|8-OΕ]ʔ U=TL8=;6c| !qfF3aů&~$l}'NWUs$Uk^SV:U# 6w++s&r+nڐ{@29 gL u"TÙM=6(^"7r}=6YݾlCuhquympǦ GjhsǜNlɻ}o7#S6aw4!OSrD57%|?x>L |/nD6?/8w#[)L7+6〼T ATg!%5MmZ/c-{1_Je"|^$'O&ޱմTrb$w)R$& N1EtdU3Uȉ1pM"N*(DNyd96.(jQ)X 5cQɎMyW?Q*!R>6=7)Xj5`J]e8%t!+'!1Q5 !1 AQaqё#2"0BRb?Gt^## .llQT $v,,m㵜5ubV =sY+@d{N! dnO<.-B;_wJt6;QJd.Qc%p{ 1,sNDdFHI0ГoXшe黅XۢF:)[FGXƹ/w_cMeD,ʡcc.WDtA$j@:) -# u c1<@ۗ9F)KJ-hpP]_x[qBlbpʖw q"LFGdƶ*s+ډ_Zc"?%t[IP 6J]#=ɺVvvCGsGh1 >)6|ey?Lӣm,4GWUi`]uJVoVDG< SB6ϏQ@ TiUlyOU0kfV~~}SZ@*WUUi##; s/[=!7}"WN]'(L! ~y5g9T̅JkbM' +s:S +B)v@Mj e Cf jE 0Y\QnzG1д~Wo{T9?`Rmyhsy3!HAD]mc1~2LSu7xT;j$`}4->L#vzŏILS ֭T{rjGKC;bpU=-`BsK.SFw4Mq]ZdHS0)tLg