shell bypass 403

UnknownSec Shell


name : NavbarLinksSettingsController.php
<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use App\Models\Setting;
use App\Models\Translation\SettingTranslation;
use Illuminate\Http\Request;

class NavbarLinksSettingsController extends Controller
{
    public function index(Request $request)
    {
        $name = 'navbar_links';
        $this->authorize('admin_additional_pages_' . $name);

        $items = [];

        $settings = Setting::where('name', $name)
            ->first();

        $locale = $request->get('locale', getDefaultLocale());
        storeContentLocale($locale, $settings->getTable(), $settings->id);

        if (!empty($settings) and !empty($settings->value)) {
            $items = json_decode($settings->value, true);
        }

        $data = [
            'pageTitle' => trans('admin/main.additional_pages_title'),
            'items' => $items,
            'selectedLocal' => $locale
        ];

        return view('admin.additional_pages.' . $name, $data);
    }


    public function store(Request $request)
    {
        $this->authorize('admin_additional_pages_navbar_links');
        $this->validate($request, [
            'value.*' => 'required',
        ]);

        $data = $request->all();
        $locale = $request->get('locale', getDefaultLocale());
        $navbar_link = $data['navbar_link'];
        $values = [];

        $settings = Setting::where('name', Setting::$navbarLinkName)->first();

        $key = ($navbar_link !== 'newLink') ? $navbar_link : random_str(6);

        if (!empty($settings) and !empty($settings->value)) {
            $values = json_decode($settings->value);
        }

        $change = false;
        if (!empty($values)) {
            foreach ($values as $k => $value) {
                if ($k == $key) {
                    $values->$key = $data['value'];
                    $change = true;
                }
            }
        }

        if (!$change) {
            $newValue[$key] = $data['value'];
            $values = array_merge((array)$values, $newValue);
        }

        $settings = Setting::updateOrCreate(
            ['name' => Setting::$navbarLinkName],
            [
                'updated_at' => time(),
            ]
        );

        SettingTranslation::updateOrCreate(
            [
                'setting_id' => $settings->id,
                'locale' => mb_strtolower($locale)
            ],
            [
                'value' => json_encode($values),
            ]
        );

        removeContentLocale();

        cache()->forget('settings.' . Setting::$navbarLinkName);

        return redirect(getAdminPanelUrl().'/additional_page/navbar_links');
    }

    public function edit(Request $request, $link_key)
    {
        $this->authorize('admin_additional_pages_navbar_links');

        $settings = Setting::where('name', Setting::$navbarLinkName)->first();

        $locale = $request->get('locale', getDefaultLocale());
        storeContentLocale($locale, $settings->getTable(), $settings->id);

        if (!empty($settings)) {
            $values = [];

            if (!empty($settings->value)) {
                $values = json_decode($settings->value);
            }

            $result = null;

            if (!empty($values)) {
                foreach ($values as $key => $value) {
                    if ($key == $link_key) {
                        $result = $value;
                    }
                }
            }

            $data = [
                'pageTitle' => trans('admin/pages/setting.settings_navbar_links'),
                'navbar_link' => $result,
                'navbarLinkKey' => $link_key,
                'selectedLocal' => $locale
            ];

            return view('admin.additional_pages.navbar_links', $data);
        }

        abort(404);
    }

    public function delete($link_key)
    {
        $this->authorize('admin_additional_pages_navbar_links');
        $settings = Setting::where('name', Setting::$navbarLinkName)->first();

        if (!empty($settings) and !empty($settings->translations)) {
            foreach ($settings->translations as $translation) {
                $values = json_decode($translation->value);

                foreach ($values as $key => $value) {
                    if ($key == $link_key) {
                        unset($values->$link_key);
                    }
                }

                $settings->update([
                    'updated_at' => time(),
                ]);

                $translation->update([
                    'value' => json_encode($values),
                ]);
            }


            cache()->forget('settings.' . Setting::$navbarLinkName);

            return redirect()->back();
        }

        abort(404);
    }
}

© 2025 UnknownSec
Courses | Anyleson - Learning Platform
INR (₹)
India Rupee
$
United States Dollar

Courses

17 Courses
Course
Full Stack Web Development

Full Stack Web Development

in Web Development
83:20 Hours
10 Oct 2024
₹28,318.82
Course
Installment and Secure Host

Installment and Secure Host

in Business Strategy
5.00
1:30 Hours
16 Mar 2023
₹118
Course
New Update Features

New Update Features

in Language
4.00
1:30 Hours
21 Jun 2022
Free
Not conducted
Bestseller
New In-App Live System

New In-App Live System

in Communications
5.00
2:30 Hours
1 Mar 2026
₹11.80
Featured
New Learning Page

New Learning Page

in Lifestyle
5.00
3:30 Hours
1 Mar 2022
Free
Finished
How to Travel Around the World

How to Travel Around the World

in Lifestyle
5.00
2:30 Hours
2 Mar 2022
₹29.50

Type

More options