!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/main_file/app/Http/Controllers/   drwxrwxr-x
Free 13.11 GB of 57.97 GB (22.61%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     SupportController.php (11.4 KB)      -rw-rw-r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace App\Http\Controllers;

use 
App\Models\Employee;
use 
App\Models\Support;
use 
App\Models\SupportReply;
use 
App\Models\Ticket;
use 
App\Models\User;
use 
App\Models\Utility;
use 
Illuminate\Http\Request;
use 
Illuminate\Support\Facades\Mail;

class 
SupportController extends Controller
{
    public function 
index()
    {
        if(
\Auth::user()->type == 'company')
        {
            
$supports Support::where('created_by'\Auth::user()->creatorId())->get();
            
$countTicket      Support::where('created_by''='\Auth::user()->creatorId())->count();
            
$countOpenTicket  Support::where('status''=''open')->where('created_by''='\Auth::user()->creatorId())->count();
            
$countonholdTicket  Support::where('status''=''on hold')->where('created_by''='\Auth::user()->creatorId())->count();
            
$countCloseTicket Support::where('status''=''close')->where('created_by''='\Auth::user()->creatorId())->count();
            return 
view('support.index'compact('supports','countTicket','countOpenTicket','countonholdTicket','countCloseTicket'));
        }
        elseif(
\Auth::user()->type == 'client')
        {
            
$supports Support::where('user'\Auth::user()->id)->orWhere('ticket_created'\Auth::user()->id)->get();
            
$countTicket      Support::where('created_by''='\Auth::user()->creatorId())->count();
            
$countOpenTicket  Support::where('status''=''open')->where('created_by''='\Auth::user()->creatorId())->count();
            
$countonholdTicket  Support::where('status''=''on hold')->where('created_by''='\Auth::user()->creatorId())->count();
            
$countCloseTicket Support::where('status''=''close')->where('created_by''='\Auth::user()->creatorId())->count();
            return 
view('support.index'compact('supports','countTicket','countOpenTicket','countonholdTicket','countCloseTicket'));
        }
        else
        {

            
$supports Support::where('user'\Auth::user()->id)->orWhere('ticket_created'\Auth::user()->id)->get();
            
$countTicket      Support::where('created_by''='\Auth::user()->creatorId())->count();
            
$countOpenTicket  Support::where('status''=''open')->where('created_by''='\Auth::user()->creatorId())->count();
            
$countonholdTicket  Support::where('status''=''on hold')->where('created_by''='\Auth::user()->creatorId())->count();
            
$countCloseTicket Support::where('status''=''close')->where('created_by''='\Auth::user()->creatorId())->count();
            return 
view('support.index'compact('supports','countTicket','countOpenTicket','countonholdTicket','countCloseTicket'));
        }

    }


    public function 
create()
    {
        
$priority = [
            
__('Low'),
            
__('Medium'),
            
__('High'),
            
__('Critical'),
        ];
        
//$status = Support::$status;
        
$status Support::status();
        
$users User::where('created_by'\Auth::user()->creatorId())->get()->pluck('name''id');
        return 
view('support.create'compact('priority''users','status'));
    }


    public function 
store(Request $request)
    {

        
$validator \Validator::make(
            
$request->all(), [
                               
'subject' => 'required',
                               
'priority' => 'required',
                           ]
        );

        if(
$validator->fails())
        {
            
$messages $validator->getMessageBag();
            return 
redirect()->back()->with('error'$messages->first());
        }

        
$support              = new Support();
        
$support->subject     $request->subject;
        
$support->priority    $request->priority;
        
$support->end_date    $request->end_date;
        
$support->ticket_code date('hms');
        
$support->status      'Open';

        if(!empty(
$request->attachment))
        {

            if(
$support->attachment)
            {
                
$path storage_path('uploads/supports' $support->attachment);
                if(
file_exists($path))
                {
                    
\File::delete($path);
                }
            }
            
$fileName time() . "_" $request->attachment->getClientOriginalName();
            
$support->attachment $fileName;
            
$dir        'uploads/supports';
            
$path Utility::upload_file($request,'attachment',$fileName,$dir,[]);
            if(
$path['flag']==0){
                return 
redirect()->back()->with('error'__($path['msg']));
            }
//            $request->attachment  = $fileName;
//            $support->save();
        
}

        
$support->description    $request->description;
        
$support->created_by     \Auth::user()->creatorId();
        
$support->ticket_created \Auth::user()->id;
        if(
\Auth::user()->type == 'client')
        {
            
$support->user \Auth::user()->id;;
        }
        else
        {
            
$request->user$request->user;
        }

        
$support->save();



        
//Slack Notification
        
$setting  Utility::settings(\Auth::user()->creatorId());
        
$support_priority \App\Models\Support::$priority[$support->priority];
        
$user User::find($request->user);
        if(isset(
$setting['support_notification']) && $setting['support_notification'] ==1){
            
$msg __("New Support ticket created of").' ' .$support_priority .' '.__(" priority for").' ' $user->name.'.';
            
Utility::send_slack_msg($msg);
        }

        
//Telegram Notification
        
$setting  Utility::settings(\Auth::user()->creatorId());
        
$support_priority \App\Models\Support::$priority[$support->priority];
        
$user User::find($request->user);
        if(isset(
$setting['telegram_support_notification']) && $setting['telegram_support_notification'] ==1){
            
$msg __("New Support ticket created of").' ' .$support_priority .' '.__(" priority for").' ' $user->name.'.';
            
Utility::send_telegram_msg($msg);
        }

        
// send mail
        
$id =!empty($request->user )? $request->user\Auth::user()->id;
        
$employee             User::find($id);
        
$support_priority \App\Models\Support::$priority[$support->priority];
        
$supportArr = [
            
'support_name'=> $employee->name,
            
'support_title' => $support->subject,
            
'support_priority' =>  $support_priority,
            
'support_end_date' => $support->end_date,
            
'support_description' => $support->description,

        ];
        
$resp Utility::sendEmailTemplate('new_support_ticket', [$employee->id => $employee->email], $supportArr);


        return 
redirect()->route('support.index')->with('success'__('Support successfully added.').(($resp['is_success'] == false && !empty($resp['error'])) ? '<br> <span class="text-danger">' $resp['error'] . '</span>' ''));


    }


    public function 
show(Support $support)
    {
        
//
    
}


    public function 
edit(Support $support)
    {
        
$priority = [
            
__('Low'),
            
__('Medium'),
            
__('High'),
            
__('Critical'),
        ];
        
//$status = Support::$status;
        
$status Support::status();
        
$users User::where('created_by'\Auth::user()->creatorId())->get()->pluck('name''id');

        return 
view('support.edit'compact('priority''users''support','status'));
    }


    public function 
update(Request $requestSupport $support)
    {

        
$validator \Validator::make(
            
$request->all(), [
                               
'subject' => 'required',
                               
'priority' => 'required',
                           ]
        );

        if(
$validator->fails())
        {
            
$messages $validator->getMessageBag();

            return 
redirect()->back()->with('error'$messages->first());
        }

        
$support->subject  $request->subject;
        
$support->user     $request->user;
        
$support->priority $request->priority;
        
$support->status  $request->status;
        
$support->end_date $request->end_date;
//        if(!empty($request->attachment))
//        {
//            $fileName = time() . "_" . $request->attachment->getClientOriginalName();
//            $request->attachment->storeAs('uploads/supports', $fileName);
//            $support->attchment = $fileName;
//        }

        
if(!empty($request->attachment))
        {

            if(
$support->attachment)
            {
                
$path storage_path('uploads/supports' $support->attachment);
                if(
file_exists($path))
                {
                    
\File::delete($path);
                }
            }
            
$fileName time() . "_" $request->attachment->getClientOriginalName();
            
$support->attachment $fileName;
            
$dir        'uploads/supports';
            
$path Utility::upload_file($request,'attachment',$fileName,$dir,[]);
            if(
$path['flag']==0){
                return 
redirect()->back()->with('error'__($path['msg']));
            }
//            $request->attachment  = $fileName;
//            $support->save();
        
}
        
$support->description $request->description;

        
$support->save();

        return 
redirect()->route('support.index')->with('success'__('Support successfully updated.'));

    }


    public function 
destroy(Support $support)
    {
        
$support->delete();
        if(
$support->attachment)
        {
            
\File::delete(storage_path('uploads/supports/' $support->attachment));
        }

        return 
redirect()->route('support.index')->with('success'__('Support successfully deleted.'));

    }

    public function 
reply($ids)
    {
        
$id      \Crypt::decrypt($ids);
        
$replyes SupportReply::where('support_id'$id)->get();
        
$support Support::find($id);

        foreach(
$replyes as $reply)
        {
            
$supportReply          SupportReply::find($reply->id);
            
$supportReply->is_read 1;
            
$supportReply->save();
        }

        return 
view('support.reply'compact('support''replyes'));
    }

    public function 
replyAnswer(Request $request$id)
    {
        
$supportReply              = new SupportReply();
        
$supportReply->support_id  $id;
        
$supportReply->user        \Auth::user()->id;
        
$supportReply->description $request->description;
        
$supportReply->created_by  \Auth::user()->creatorId();
        
$supportReply->save();

        return 
redirect()->back()->with('success'__('Support reply successfully send.'));
    }

    public function 
grid()
    {

        if(
\Auth::user()->type == 'company')
        {
            
$supports Support::where('created_by'\Auth::user()->creatorId())->get();

            return 
view('support.grid'compact('supports'));
        }
        elseif(
\Auth::user()->type == 'client')
        {
            
$supports Support::where('user'\Auth::user()->id)->orWhere('ticket_created'\Auth::user()->id)->get();

            return 
view('support.grid'compact('supports'));
        }
        elseif(
\Auth::user()->type == 'employee')
        {

            
$supports Support::where('user'\Auth::user()->id)->orWhere('ticket_created'\Auth::user()->id)->get();

            return 
view('support.grid'compact('supports'));
        }
        else
        {
            return 
redirect()->back()->with('error'__('Permission denied.'));
        }
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0059 ]--