File: /home/imensosw/.trash/app.2/Http/Controllers/Website/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'));
}
}
}