edms2023/app/Http/Controllers/UsersController.php

173 lines
5.6 KiB
PHP
Raw Normal View History

2023-09-14 20:59:46 +00:00
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\User;
use App\Role;
use App\Department;
use App\RoleUser;
use App\Setting;
use Session;
use DB;
use Auth;
class UsersController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth:web');
}
public function search(Request $request)
{
$input = $request->all();
$request->session()->put('search_val', $input['search']);
return redirect()->route('people');
}
public function people(Request $request)
{
$setting = Setting::first();
if(isset($setting->data_limit_per_page) && $setting->data_limit_per_page > 0)
{
$limit_val = $setting->data_limit_per_page;
}
else
{
$limit_val = 10;
}
$search_val = null;
if($request->session()->has('search_val')){
$search_val = $request->session()->get('search_val');
$request->session()->forget('search_val');
}
if($search_val !== null)
{
$users = DB::table('users')
->join('role_user', 'users.id', '=', 'role_user.user_id')
->join('roles', 'role_user.role_id', '=', 'roles.id')
->select('users.*', 'roles.name as role_name', 'roles.id as role_id', 'users.id as id')
->orderBy('users.id', 'desc')
->where('users.first_name', 'like', '%'.$search_val.'%')
->orWhere('users.last_name', 'like', '%'.$search_val.'%')
->orWhere('users.username', 'like', '%'.$search_val.'%')
->orWhere('users.email', 'like', '%'.$search_val.'%')
->orWhere('roles.name', 'like', '%'.$search_val.'%')
->paginate($limit_val);
}
else{
$users = DB::table('users')
->join('role_user', 'users.id', '=', 'role_user.user_id')
->join('roles', 'role_user.role_id', '=', 'roles.id')
->select('users.*', 'roles.name as role_name', 'roles.id as role_id', 'users.id as id')
->orderBy('users.id', 'desc')
->paginate($limit_val);
}
//print_r($users);exit;
return view('users.index', compact('users', 'search_val'));
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function view($id)
{
$id=base64_decode($id);
$user =DB::table('users')->join('role_user', 'users.id', '=', 'role_user.user_id')->join('roles', 'role_user.role_id', '=', 'roles.id')->select('users.*', 'roles.name as role_name', 'roles.id as role_id', 'users.id as id')->where('users.id', '=', $id)->first();
if($user):
$languages = DB::table('languages')
->orderBy('serial_no', 'asc')
->get();
return view('users.view', compact('user', 'languages'));
else:
Session::flash('error_message', __('Invalid user id.'));
return redirect()->back();
endif;
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function profile()
{
$id=Auth::user()->id;
$user = User::join('role_user', 'users.id', '=', 'role_user.user_id')
->join('roles', 'role_user.role_id', '=', 'roles.id')
->where('users.id', '=', $id)
->select('users.*', 'roles.name as role_name', 'roles.id as role_id', 'users.id as id')
->first();
if($user):
$languages = DB::table('languages')
->orderBy('serial_no', 'asc')
->get();
return view('users.profile', compact('user', 'languages'));
else:
Session::flash('error_message', __('We are having some problem. Please try later.'));
return redirect()->route('login');
endif;
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function updateProfile(Request $request)
{
$id=Auth::user()->id;
$user = User::findOrFail($id);
$validatedData = $this->validate($request, [
'first_name' => 'required|max:150',
'last_name' => 'required|max:150',
'email' => 'required|unique:users,email,'.$id.'|email|max:255',
'password' => 'confirmed',
'cell_phone_number' => 'required|numeric',
'home_address' => 'required',
'up_profile_picture' => 'image|mimes:jpeg,png,jpg,gif,svg|max:2048',
]);
$input = $request->all();
if(isset($input['up_profile_picture']) && $input['up_profile_picture']->getError() == 0 && $input['up_profile_picture']->getClientOriginalName() != "")
{
if($user->profile_picture != "" && file_exists(public_path('uploads/user_folder/'.$user->image)))
$prev_image = $user->profile_picture;
$userImageName = "profile_".time().'.'.$input['up_profile_picture']->getClientOriginalExtension();
$input['profile_picture'] = $userImageName;
}
if($request['password']!=""):
$input['password']=bcrypt($request['password']);
else:
unset($input['password']);
endif;
$input['username']= $user->username;
$saved_data=$user->fill($input)->save();
if($saved_data):
if(isset($input['up_profile_picture']) && $input['up_profile_picture']->getError() == 0 && $input['up_profile_picture']->getClientOriginalName() != "")
{
$input['up_profile_picture']->move(public_path('uploads/user_folder'), $userImageName);
if(isset($prev_image) && $prev_image != "" && file_exists(public_path('uploads/user_folder/'.$prev_image)))
unlink(public_path('uploads/user_folder/'.$prev_image));
}
Session::flash('success_message', __('Your profile has been updated successfully.'));
return redirect()->route('profile');
else:
Session::flash('error_message', __('We are having some problem. Please try later.'));
return redirect()->route('profile');
endif;
}
}