| 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/silversharkdev/app/Http/Controllers/ |
Upload File : |
<?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"];
}
}