shell bypass 403

UnknownSec Shell

: /home/bouloter/infix/app/Imports/ [ drwxr-xr-x ]

name : OrgAttandanceImport.php
<?php

namespace App\Imports;

use Brian2694\Toastr\Facades\Toastr;
use Illuminate\Support\Collection;
use Illuminate\Support\Str;
use Maatwebsite\Excel\Concerns\ToCollection;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithMultipleSheets;
use Maatwebsite\Excel\Concerns\WithStartRow;
use Modules\OrgSubscription\Entities\OrgAttendance;

class OrgAttandanceImport implements WithMultipleSheets, WithStartRow, WithHeadingRow, ToCollection
{
    public function sheets(): array
    {
        return [
            '0' => new OrgAttandanceImport(),
        ];
    }

    public function startRow(): int
    {
        return 2;
    }

    public function headingRow(): int
    {
        return 1;
    }

    private function validAttendValue($value)
    {
        $arr = ['A', 'L', 'O'];
        if (in_array($value, $arr)) {
            return true;
        } else {
            return false;
        }
    }

    public function collection(Collection $rows)
    {
        $score = [];
        $toArray = $rows->sortBy('name')->toArray();
        foreach ($toArray as $key => $row) {
            $serial = ++$key;
            try {
                $error = 0;
                $id = explode('-', base64_decode($row['id']));
                $user_id = $id[0];
                $course_id = $id[1];
                $class_id = $id[2];

                if (empty($row['attend'])) {
                    Toastr::error(trans('org.Attend is required') . ', ' . trans('org.For row') . ' ' . $serial, trans('common.Failed'));
                    $error++;
                }

                if (!empty($row['total_score'])) {
                    if (!is_numeric($row['total_score'])) {
                        $error++;
                        Toastr::error(trans('org.Total Score Is Not Numeric') . ', ' . trans('org.For row') . ' ' . $serial, trans('common.Failed'));
                    }

                    if (empty($row['pass_rate'])) {
                        $error++;
                        Toastr::error(trans('org.Pass Role is required') . ', ' . trans('org.For row') . ' ' . $serial, trans('common.Failed'));
                    }
                    if (empty($row['actual_score'])) {
                        $error++;
                        Toastr::error(trans('org.Actual Score is required') . ', ' . trans('org.For row') . ' ' . $serial, trans('common.Failed'));
                    }

                    if (!is_numeric($row['pass_rate'])) {
                        $error++;
                        Toastr::error(trans('org.Pass Rate Is Not Numeric') . ', ' . trans('org.For row') . ' ' . $serial, trans('common.Failed'));
                    }

                    if (!is_numeric($row['actual_score'])) {
                        $error++;
                        Toastr::error(trans('org.Actual Score Is Not Numeric') . ', ' . trans('org.For row') . ' ' . $serial, trans('common.Failed'));
                    }

                    if ($row['pass_rate'] > 100) {
                        $error++;
                        Toastr::error(trans('org.Pass Rate can not grater then 100') . ', ' . trans('org.For row') . ' ' . $serial, trans('common.Failed'));
                    }

                    if ($row['actual_score'] > $row['total_score']) {
                        $error++;
                        Toastr::error(trans('org.Actual score can not grater then total score') . ', ' . trans('org.For row') . ' ' . $serial, trans('common.Failed'));
                    }

                    if (isset($score[$course_id])) {
                        if ($score[$course_id] != $row['total_score']) {
                            $error++;
                            Toastr::error(trans('org.Same course total must be same') . ', ' . trans('org.For row') . ' ' . $serial, trans('common.Failed'));
                        }
                    } else {
                        $score[$course_id] = $row['total_score'];
                    }

                }


                if (!$this->validAttendValue($row['attend'])) {
                    $error++;
                    Toastr::error(trans('org.Invalid Input') . ', ' . trans('org.For row') . ' ' . $serial, trans('common.Failed'));
                }


                if ($error != 0) {
                    continue;
                }
                $attandance = OrgAttendance::where('user_id', $user_id)->where('course_id', $course_id)->first();
                if (!$attandance) {
                    $attandance = new OrgAttendance();
                }
                $pass = 0;
                if (isset($row['pass_rate']) && isset($row['actual_score']) && isset($row['total_score'])) {
                    $actual_rate = getPercentage($row['actual_score'], $row['total_score']);
                    if ($actual_rate >= $row['pass_rate']) {
                        $pass = 1;
                    }
                }


                $attandance->user_id = $user_id;
                $attandance->course_id = $course_id;
                $attandance->class_id = $class_id;
                $attandance->attend = Str::upper($row['attend'] ?? 'A');
                $attandance->total_score = $row['total_score'] ?? 0;
                $attandance->pass_rate = $row['pass_rate'] ?? 0;
                $attandance->actual_score = $row['actual_score'] ?? 0;
                $attandance->pass = $pass;
                $attandance->save();
            } catch (\Exception $e) {
                Toastr::error(trans('common.Something Went Wrong') . ', ' . trans('org.For row') . ' ' . $serial, trans('common.Failed'));

            }
        }
    }
}

© 2025 UnknownSec
afwwrfwafr45458465
Password