403Webshell
Server IP : 138.197.107.151  /  Your IP : 216.73.217.120
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux BloxBy-Builder 6.8.0-71-generic #71-Ubuntu SMP PREEMPT_DYNAMIC Tue Jul 22 16:52:38 UTC 2025 x86_64
User : wpbetasites_mrakzqskir ( 1022)
PHP Version : 8.3.6
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/silversharkdev/app/Http/Controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/silversharkdev/app/Http/Controllers/RegisterController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\User;
use App\Models\Website;
use App\Models\Prompt;
use Illuminate\Support\Facades\Hash;
use Illuminate\Validation\ValidationException;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\URL;
use Illuminate\Support\Facades\Validator;
use Carbon\Carbon;
use App\Services\EmailValidatorService;
use App\Http\Controllers\WebsiteController;
use Mail;

class RegisterController extends Controller
{
    // Show registration form
    public function showRegistrationForm(Request $request)
    {
        $data = session('website_json');

        if($request->update){
            $data = session('website_json');

            if($data){
                if($data["prompt_id"]){

                    $prompt = Prompt::where("id", $data["prompt_id"])->first();

                    if($prompt){
                        
                        $prompt->meta = json_encode($data);

                        $prompt->prompt = json_encode($data["user_prompt"]);

                        $prompt->save();
                    }
                }
            }
            return redirect()->route('register.form');
        }
        
        return view('auth.register');  // Make sure you have this Blade view
    }

    // Handle registration request
    public function register(Request $request)
    {

        
        /*$phone = $request->phone;

        // Keep only digits and allow a leading "+"
        $sanitized = preg_replace('/(?!^\+)[^\d]/', '', $phone);

        $request->merge([
            'phone' => $sanitized
        ]);*/
        
        $validator = Validator::make($request->all(), [
            'name'     => 'required|string|max:255',
            'email'    => 'required|email',
            //'phone_full'    => 'required|string|max:20',
            'password' => 'required|string|min:6|confirmed',
        ],
        [
            'password.confirmed' => 'Password and confirm password do not match.',
        ]);

        //|unique:users,email

        $existingUser = User::where('email', $request->email)->first();

        if ($existingUser) {
            if (empty($existingUser->password) || $existingUser->providers()->count() > 0) {
                // Email already tied to a social login
                $validator->after(function ($v) {
                    $v->errors()->add('email', 'This email is already registered with a social account. Please continue with social login.');
                });
            } else {
                // Email already tied to a normal account
                $validator->after(function ($v) {
                    $v->errors()->add('email', 'This email is already taken.');
                });
            }
        }

        $emailValidatorService = new EmailValidatorService;
        
        $response = $emailValidatorService->validate($request->email);

        // print_r($response); die;

        if($response["disposable"]){

            $validator->after(function ($v) {
                $v->errors()->add('email', 'Please enter non disposable emails.');
            });
            
        }
      
        if ($validator->fails()) {
            
            return redirect()->back()
                ->withErrors($validator)
                ->withInput();
        }
          //print_r($validator->errors()); die;

        $user = User::create([
            'name'     => $request->name,
            'email'    => $request->email,
            'phone'    => $request->phone_full,
            'password' => Hash::make($request->password),
            'trial_ending_at' => date("Y-m-d H:i:s", time() + 3*24*60*60)
        ]);

        /*Mail::send('emails.welcome_email', [
            'user' => $user
        ], function ($message) use ($user) {
            $message->to($user->email);
            $message->subject('Welcome to '.env('APP_NAME').'! ');
        });*/

        $verificationUrl = URL::temporarySignedRoute(
            'email.verify',
            Carbon::now()->addHours(2),
            [
                'id' => $user->id,
                'hash' => sha1($user->email),
            ]
        );

        // Mail::send('emails.email_verify', [
        //     'user' => $user,
        //     'verificationUrl' => $verificationUrl
        // ], function ($message) use ($user) {
        //     $message->to($user->email);
        //     $message->subject('Verify Your Email - ' . env('APP_NAME'));
        // });

        //return redirect()->route('register.email_verification',["email"=>$user->email])->with('status', 'We have sent you a verification email valid for 2 hours.');

        Auth::login($user);

        $website_ctrl = new WebsiteController;

        $website_ctrl->saveWebsite();

        return redirect()->route('dashboard');
        
        /*$data = session('website_json');

        if($data){
            return redirect('/generate-site');
        } else {
            return redirect('/dashboard');
        }*/
    }
    public function resendVerificationEmail(Request $request){

        $user = null;

        if (Auth::check()) {
            // User is logged in
            $user = Auth::user();
        } else {
            $user = User::where("email", $request->email)->first();
        }
        
        if($user){
            $verificationUrl = URL::temporarySignedRoute(
                'email.verify',
                Carbon::now()->addHours(2),
                [
                    'id' => $user->id,
                    'hash' => sha1($user->email),
                ]
            );

            Mail::send('emails.email_verify', [
                'user' => $user,
                'verificationUrl' => $verificationUrl
            ], function ($message) use ($user) {
                $message->to($user->email);
                $message->subject('Verify Your Email - ' . env('APP_NAME'));
            });
        }
        return redirect()->back()->with(['success'=> 'We have sent you a verification email valid for 2 hours.']);

        //return redirect()->route('register.email_verification',["email"=>$user->email])->with('status', 'We have sent you a verification email valid for 2 hours.');
    }
    public function showEmailVerification(Request $request){
        
        return view("auth.email-verification-send");
    }
    public function verifyEmail(Request $request)
    {
        if (! $request->hasValidSignature()) {
            return redirect('/login')->withErrors(['message' => 'Invalid or expired verification link.']);
        }

        $user = User::findOrFail($request->id);

        if (sha1($user->email) !== $request->hash) {

            if(Auth::check()){
                Auth::logout();
                $request->session()->invalidate();
                $request->session()->regenerateToken();
            }
            return redirect('/login')->withErrors(['message' => 'Invalid verification link.']);
        }

        // If already verified
        if ($user->email_verified_at) {

            if(Auth::check()){
                return redirect('/dashboard')->with(['error'=> 'Your email is already verified.']);
            } else {
                return redirect('/login')->with('status', 'Your email is already verified.');
            }
        }

        // Mark email as verified
        
        if($user->email_verified_at==null){
            Mail::send('emails.welcome_email', [
                'user' => $user
            ], function ($message) use ($user) {
                $message->to($user->email);
                $message->subject('Welcome to '.env('APP_NAME').'! ');
            });
        }
        $user->trial_ending_at = null;
        $user->email_verified_at = now();
        $user->save();

        Website::withTrashed()
            ->where("user_id", $user->id)
            ->where("trial_mode",1)
            ->update([
                'trial_mode' => 0,
                'deleted_at' => null,
            ]);

        Auth::login($user);

        return redirect('/dashboard')->with(['success'=> 'Your email has been verified successfully.']);;

        //return redirect('/login')->with('status', 'Your email has been verified successfully.');
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit