!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)

/uploads/script/app/Http/Controllers/Admin/   drwxr-xr-x
Free 13.26 GB of 57.97 GB (22.87%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


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

namespace App\Http\Controllers\Admin;

use 
App\Http\Controllers\Controller;
use 
Illuminate\Http\Request;
use 
Auth;
use 
App\Models\User;
use 
App\Models\Userplan;
use 
App\Trasection;
use 
App\Domain;
use 
App\Plan;
use 
App\Term;
use 
App\Option;
use 
Hash;
use 
App\Models\Userplanmeta;
use 
App\Models\Customer;
class 
CustomerController extends Controller
{
    protected 
$request;
    
/**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    
public function index(Request $request)
    {
        if (!
Auth()->user()->can('customer.list')) {
            return 
abort(401);
        }
        
$type=$request->type ?? 'all';
        if (
$type=="trash") {
           
$type=0;
        }
        
//return $request;
        
if (!empty($request->src) && $request->term=="domain") {
            
$this->request=$request->src;
            if (
$type === 'all') {

              
$posts=User::where('role_id',3)->whereHas('user_domain',function($q){
                return 
$q->where('domain',$this->request);
            })->
with('user_domain','user_plan')->latest()->paginate(40);
            }
            else{
                
$posts=User::where('role_id',3)->where('status',$type)->whereHas('user_domain',function($q){
                    return 
$q->where('domain',$request->src);
                })->
with('user_domain','user_plan')->where('status',$type)->latest()->paginate(40);
            }
            
        }
        elseif (!empty(
$request->src) && !empty($request->term)) {
             if (
$type === 'all') {
             
$posts=User::where('role_id',3)->with('user_domain','user_plan')->where($request->term,$request->src)->latest()->paginate(40);
             }
             else{
                
$posts=User::where('role_id',3)->where('status',$type)->with('user_domain','user_plan')->where($request->term,$request->src)->latest()->paginate(40);
             }
        }
        else{  
           if (
$type === 'all') { 
            
$posts=User::where('role_id',3)->with('user_domain','user_plan')->latest()->paginate(40);
           }
           else{
             
$posts=User::where('role_id',3)->where('status',$type)->with('user_domain','user_plan')->latest()->paginate(40);
           }
        }


        
$all=User::where('role_id',3)->count();
        
$actives=User::where('role_id',3)->where('status',1)->count();
        
$suspened=User::where('role_id',3)->where('status',2)->count();
        
$trash=User::where('role_id',3)->where('status',0)->count();
        
$requested=User::where('role_id',3)->where('status',4)->count();
        
$pendings=User::where('role_id',3)->where('status',3)->count();
        return 
view('admin.customer.index',compact('posts','request','type','all','actives','suspened','trash','requested','pendings'));
    }

    
/**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    
public function create()
    {
        if (!
Auth()->user()->can('customer.create')) {
            return 
abort(401);
        }

        return 
view('admin.customer.create');
    }


    
/**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    
public function store(Request $request)
    {
        
$validatedData $request->validate([
            
'email' => 'required|unique:users|email|max:255',
            
'name' => 'required',
            
'password' => 'required',
            
'plan' => 'required',
            
'domain_name' => 'required|max:100|unique:domains,domain',
            
'full_domain' => 'required|max:100|unique:domains,full_domain',
        ]);

       
        
$info=Plan::find($request->plan);
        


         
DB::beginTransaction();
        try {
        
$user=new User;
        
$user->name=$request->name;
        
$user->email=$request->email;
        
$user->password=Hash::make($request->password);
        
$user->role_id=3;
        
$user->status=1;
        
$user->save();

        
$exp_days =  $info->days;
        
$expiry_date \Carbon\Carbon::now()->addDays(($exp_days))->format('Y-m-d');

        
$max_order=Userplan::max('id');
        
$order_prefix=Option::where('key','order_prefix')->first();


        
$order_no $order_prefix->value.$max_order;

        
$tax=Option::where('key','tax')->first();
        
$tax= ($info->price 100) * $tax->value;

         
$userplan = new Userplan;
         
$userplan->order_no=$order_no;
         
$userplan->amount=$info->amount;
         
$userplan->tax=$tax;
         
$userplan->trx=$request->trasection_id;
         
$userplan->will_expire=$expiry_date;
         
$userplan->user_id=$user->id;
         
$userplan->plan_id=$info->id;
         
$userplan->category_id=$request->trasection_method;
         
$userplan->status=1;
         
$userplan->payment_status=1;
         
$userplan->save();

        

        
$dom=new Domain;
        
$dom->domain=$request->domain_name;
        
$dom->full_domain=$request->full_domain;
        
$dom->status=1;
        
$dom->user_id=$user->id;
        
$dom->is_trial=$info->is_trial;
        
$dom->type=1;
        
$dom->data=$info->data;
        
$dom->will_expire=$expiry_date;
        
$dom->userplan_id=$userplan->id;
        
$dom->save();


        
$user=User::find($user->id);
        
$user->domain_id=$dom->id;
        
$user->save();

        
$dom->orderlog()->create(['userplan_id'=>$userplan->id,'domain_id'=>$dom->id]);
        

        
DB::commit();
      } catch (
Exception $e) {
      
DB::rollback();
     }




        return 
response()->json(['Customer Created Successfully']);


    }

    
/**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    
public function show($id)
    {
       if (!
Auth()->user()->can('customer.view')) {
            return 
abort(401);
       }

       
$info=User::withCount('term','orders','customers')->where('role_id',3)->with('user_domain','user_plan')->findorFail($id);
       
$histories=Userplan::with('plan_info','category')->where('user_id',$id)->latest()->paginate(20);

        
$customers=Customer::withCount('orders')->where('created_by',$id)->latest()->paginate(20);
        
$posts=\App\Term::where('user_id',$id)->latest()->paginate(40);
       return 
view('admin.customer.show',compact('info','histories','customers','posts'));
    }

    public function 
planview($id)
    {
       if (!
Auth()->user()->can('customer.edit')) {
            return 
abort(401);
       }

       
$info=User::withCount('term','orders','customers')->where('role_id',3)->findorFail($id);
      
       
$domain=Domain::where('user_id',$id)->first();
       
$planinfo=json_decode($domain->data);
       
abort_if(empty($planinfo),404);
       
       return 
view('admin.customer.planinfo',compact('info','planinfo','domain'));
    }

    public function 
updateplaninfo(Request $request$id)
    {
        
$plan_data['product_limit']=$request->product_limit;
        
$plan_data['customer_limit']=$request->customer_limit;
        
$plan_data['storage']=$request->storage;
        
$plan_data['custom_domain']=$request->custom_domain;
        
$plan_data['inventory']=$request->inventory;
        
$plan_data['pos']=$request->pos;
        
$plan_data['customer_panel']=$request->customer_panel;
        
$plan_data['pwa']=$request->pwa;
        
$plan_data['whatsapp']=$request->whatsapp;
        
$plan_data['live_support']=$request->live_support;
        
$plan_data['qr_code']=$request->qr_code;
        
$plan_data['facebook_pixel']=$request->facebook_pixel;
        
$plan_data['custom_css']=$request->custom_css;
        
$plan_data['custom_js']=$request->custom_js;
        
$plan_data['gtm']=$request->gtm;
        
$plan_data['location_limit']=$request->location_limit;
        
$plan_data['category_limit']=$request->category_limit;
        
$plan_data['brand_limit']=$request->brand_limit;
        
$plan_data['variation_limit']=$request->variation_limit;
        
$plan_data['google_analytics']=$request->google_analytics;

       
$domain=Domain::findorFail($id);
       
$domain->data=json_encode($plan_data);
       
$domain->save();

       return 
response()->json('Info Updated Successfully');
    }
    
/**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    
public function edit($id)
    {
       if (!
Auth()->user()->can('customer.edit')) {
            return 
abort(401);
        }

        
$info=User::findorFail($id);
        return 
view('admin.customer.edit',compact('info'));
    }

    
/**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    
public function update(Request $request$id)
    {
         
$request->validate([
            
'name' => 'required|max:50',
            
'email' => 'required|max:100|email|unique:users,email,' $id,
        ]);

         
$user=User::findorFail($id);
         
$user->name=$request->name;
         
$user->email=$request->email;
         if (
$request->password) {
             
$user->password=Hash::make($request->password);
         }
         
$user->status=$request->status;
         
$user->save();

         return 
response()->json(['User Updated Successfully']);

    }

    
/**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    
public function destroy(Request $request)
    {
        if (!
Auth()->user()->can('customer.delete')) {
            return 
abort(401);
        }

        if (
$request->type=="term_delete") {
            foreach (
$request->ids ?? [] as $key => $id) {
                
\App\Term::destroy($id);
            }
        }
        elseif (
$request->type=="user_delete") {
            foreach (
$request->ids ?? [] as $key => $id) {
                
\App\Models\Customer::destroy($id);
            }
        }
        else{
            if (!empty(
$request->method)) {
                if (
$request->method=="delete") {
                    foreach (
$request->ids ?? [] as $key => $id) {
                       
\File::deleteDirectory('uploads/'.$id);
                       
$user=User::destroy($id);
                    }
                }
                else{
                    foreach (
$request->ids ?? [] as $key => $id) {
                       
$user=User::find($id);
                       if (
$request->method=="trash") {
                          
$user->status=0;
                       }
                       else{
                        
$user->status=$request->method;
                       }
                       
$user->save();
                    }
                }
            }

        }

        return 
response()->json(['Success']);


    }
}

:: 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.0085 ]--