MOON
Server: Apache
System: Linux e2e-78-16.ssdcloudindia.net 3.10.0-1160.45.1.el7.x86_64 #1 SMP Wed Oct 13 17:20:51 UTC 2021 x86_64
User: imensosw (1005)
PHP: 8.0.30
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/imensosw/www/amanda/app/Http/Controllers/AccountSettingController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\User;
use Illuminate\Support\Facades\Hash;
use Session;
use DB;
use Auth;
use App\General_detail;
use  App\AdminProfileImage;

class AccountSettingController extends Controller
{

	public function index()
	{
		// $user = User::where(array('id'=>Auth::user()->id))->first();

        $user = User::leftjoin('general_detail as gd','gd.user_id','users.id')
                ->where(array('users.id'=>Auth::user()->id))
                ->select('users.*','gd.location','gd.age','gd.height','gd.weight','gd.hair','gd.eye','gd.phone','gd.message_per_price')
                ->get();

        $AdminProfileImage = AdminProfileImage::where('user_id',Auth::user()->id)->get();
            $data = [
                'user' =>$user[0],
                'adminProfileImage' => $AdminProfileImage,
            ];
       
       return response()->json($data,200);
	}

	public function updateProfile(Request $request)
	{
        

     	$request->validate ([
        	'name' => 'required|string|max:255',
            'email' =>'required|email|max:255|unique:users,email,'.$request->id,
            'location' => 'required',
            'phone' => 'required',
            'height' => 'required|numeric',
            'weight' => 'required|numeric',
            'age' => 'required|numeric',

        ]);

		$user=User::find($request->id);
        $user->name=$request->name;
        $user->email=$request->email;
        // $user->save();
        if($user->save()){
            $isExist = General_detail::where(array('user_id'=>$request->id))->exists();
            if($isExist){
                 $general_detail = General_detail::where('user_id', $request->id)
                   ->update([
                       'location' => $request->location,
                        'phone' => $request->phone,
                        'age' => $request->age,
                        'height' => $request->height,
                        'weight' => $request->weight,
                        'eye' => $request->eye,
                        'hair' => $request->hair,
                    ]);
            }
            else{
                $general_detail = General_detail::create([
                    'user_id' => $request->id,
                    'location' => $request->location,
                    'phone' => $request->phone,
                    'age' => $request->age,
                    'height' => $request->height,
                    'weight' => $request->weight,
                    'eye' => $request->eye,
                    'hair' => $request->hair,
                ]);
            }


            if ($request->hasfile('images')) {
                $checkProfileAboutImage = AdminProfileImage::where('user_id',\Auth::user()->id)->count();
                if($checkProfileAboutImage>0){
                    AdminProfileImage::where('user_id', \Auth::user()->id)->delete();
                } 
                foreach ($request->file('images') as $file) {
                    $image = $file;
                        $extension = $image->getClientOriginalExtension();
                        $imageName = rand(111,999).time().".".$extension;
                        $image->move(config('constants.imageFolderPath')."/images/",$imageName); 
                        $data = "/api/imagesView/$imageName";
                    

                        $AdminProfileImage = AdminProfileImage::create([
                            'user_id' => \Auth::user()->id,
                            'image' =>  $imageName,
                        ]);
                }
            }
        }
        return response()->json([
            'status' => (bool) $user,
            'data'   => $user,
            'message' => $user ? 'Update Profile!' : 'Error Profile Update'
        ]);
	}


    public function updateMessagePerPrice(Request $request)
    {
        $request->validate ([
            // 'name' => 'required|string|max:255',

        ]);

        $isExist = General_detail::where(array('user_id'=>$request->id))->exists();
            if($isExist){
                 $general_detail = General_detail::where('user_id', $request->id)
                   ->update([
                       'message_per_price' => $request->message_per_price,
                      
                    ]);

                   return response()->json([
                    'status' => (bool) $general_detail,
                    'data'   => $general_detail,
                    'message' => $general_detail ? 'Update Message Price!' : 'Error Message Price Update'
                ]);
            }
            else{
                return response()->json([
                    'status' => false,
                    'message' => 'User does not exists'
                ]);
               
            }
    }

    public function updatePassword(Request $request)
    {
        $request->validate ([
        	// 'current_password'=>'required',
	        'password' => 'required|same:password|min:6',
	        'confirm_password' => 'required|same:password|min:6',
       ]);

        /*$current_password = \Auth::user()->password;
    	if(!Hash::check($request['current_password'],$current_password)){
    		return response()->json(array('status'=>false,'action'=>'error','errors'=>"The current password does not match"),404);
    	}
        if(Hash::check($request['current_password'],$current_password))
        {
            $user=User::find(Auth::user()->id);
            $user->password = Hash::make($request->password);
            $user->save();
        }*/

        if($request->password){
        	$user=User::find(Auth::user()->id);
            $user->password = Hash::make($request->password);
            $user->save();
        }
        return response()->json([
            'status' => (bool) $user,
            'data'   => $user,
            'message' => $user ? 'Password Change!' : 'Error Change Password'
        ]);
    }

    public function deleteProfileImage($id)
    {
        // $status= Product_image::where(array('id'=>$id))->delete();

        $profile_image = AdminProfileImage::find($id);

        if(!empty($profile_image)){
            $image_path = config('constants.imageFolderPath')."/images/".$profile_image->fileName;
            if (file_exists($image_path)) {
                @unlink($image_path);
            }
        }
        $status = $profile_image->delete();
        return response()->json([
            'status' => $status,
            'message' => $status ? 'Profile Image Deleted!' : 'Error Deleting Profile Image'
        ]);
    }
}