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/.trash/app.2/Http/Controllers/Admin/HomeController.php
<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use App\Role;
use App\User;
use App\Country;
use App\Organization;
use App\Partner;
use App\UserDoc;
use Validator;
use Gate;
use Auth;
use URL;
use File;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;

class HomeController extends Controller
{
    public function index()
    {
        return view('home');
    }
    
    public function approval()
    {
        return view('verification.approval');
    }

    public function user_profile(Request $request){

    	$user = Auth::user();
        $role = $user->roles->pluck('title','id')->toArray();

        if(in_array('Partner',$role)){
        	$user_type = 'Partner';
        	$user = Partner::find(Auth::user()->id);
        }
        else if(in_array('Admin',$role)){
        	$user_type = 'Admin';
        	$user = User::find(Auth::user()->id);
        }else{
        	$user_type = 'User';
        	$user = User::find(Auth::user()->id);
        }

        $user_profile_img = URL::asset('images/profile.webp');

        $user_role = $this->get_this_user_role($user->id);
        if(!empty($user->user_profile_img)){
            $user_profile_img = URL::asset('Profile/'.$user->id.'/'.$user->user_profile_img);
        }
        
        
        $countries = Country::all();

        $organizations = Organization::all();

        $user_docs = UserDoc::where('user_id',$user->id)->get();

        
        return view('admin.user_profile',compact('user','user_profile_img','countries','user_type','organizations','user_docs'));
    }

    public function update_user_profile(Request $request)
    {

    	$id = Auth::user()->id;

    	$user = Auth::user();
        $role = $user->roles->pluck('title','id')->toArray();
        
        $input = $request->all();

        if(in_array('Partner',$role)) {
        	$this->validate($request, [
                'name' => ['required', 'string', 'max:255'],
                'org_name' => ['required', 'string', 'max:255'],
                'org_contact' => ['required','regex:/^([0-9\s\-\+\(\)]*)$/','min:9'],
                'org_type' => ['required', 'string', 'max:255']
            ]);

            $this->validate($request, [
                'email' => 'required|email|unique:users,email,'.$id,
            ]);
            $user = Partner::find($id);
        }else{
        	$this->validate($request, [
                'name' => 'required|string',
                'email' => 'required|email|unique:users,email,'.$id,
            ]);
            $user = User::find($id);
        }


        $user->update($input);

        return redirect()->route('admin.user_profile')
                        ->with('success','Profile updated successfully');
    }
    
    public function upload_profile_img(Request $request)
    { 
        if($request->ajax()){
            $field_value = $request->field_value;
            $field_name = $request->field_name;
            $user_id = Auth::user()->id;
            $folder= public_path().'/Profile/'.$user_id;
            if(!is_dir($folder))
            {
                //File::makeDirectory($folder);
                File::makeDirectory($folder,0777,true);
            }
                
            if($request->hasFile('field_value')) {
                
                $file = $request->file('field_value');
                $ext = $file->getClientOriginalExtension();
                $filename = 'profile_'.$user_id.'_'.time().'.' . $ext;
                $destinationPath = $folder;
                
                $upload_success = $file->move($destinationPath, $filename);
                if($upload_success){
                    $user = User::find($user_id);
                    $user->user_profile_img = $filename;
                    $user->save();

                    $doc_url = URL::asset('Profile').'/'.$user_id.'/'.$filename;
                    $ddd = array('success' => 'done','doc_url'=>$doc_url);
                return json_encode($ddd);
                }else{
                    return json_encode(array('success' => 'error','doc_name'=>'kk'));
                }
            }
            return json_encode(array('success' => 'error','doc_name'=>'kk'));
        }
    }
}