middleware('auth:admin'); } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { $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.status', 'desc') ->orderBy('users.working_status', 'desc') ->orderBy('users.id', 'desc') ->get(); return view('admin.users.index', compact('users')); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { $languages = DB::table('languages') ->orderBy('serial_no', 'asc') ->get(); $roles=Role::orderBy('id', 'asc')->pluck('name', 'id')->toArray(); $departments=Department::where('status', '=', 1)->orderBy('id', 'asc')->get(); return view('admin.users.create', compact('roles', 'departments', 'languages')); } public function parentusers(Request $request) { $input = $request->all(); $user_lists = DB::table('users') ->join('role_user', 'users.id', '=', 'role_user.user_id') ->join('roles', 'role_user.role_id', '=', 'roles.id') ->where('roles.id', '=', ($input['data_id']-1)) ->where('users.working_status', '=', '1') ->select(DB::raw("CONCAT(users.first_name, ' ',users.last_name) AS user_details"), 'users.id', 'roles.name as role_name') ->orderBy('users.id', 'desc') ->get() ->toArray(); return response()->json(['user_lists'=>$user_lists]); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $setting = Setting::first(); $validatedData = $this->validate($request, [ 'first_name' => 'required|max:150', 'last_name' => 'required|max:150', 'username' => 'required|unique:users,username|max:100', 'email' => 'unique:users,email|email|max:255', 'password' => 'required|min:6|confirmed', 'cell_phone_number' => 'numeric', '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() != "") { $userImageName = "profile_".time().'.'.$input['up_profile_picture']->getClientOriginalExtension(); $input['profile_picture'] = $userImageName; } $input['user_disk_quota'] = $setting->default_disk_quota; $input['password']=bcrypt($input['password']); $saved_data=User::create($input); 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); $RoleUserInput['_token']=$input['_token']; $RoleUserInput['user_id']=$saved_data->id; $RoleUserInput['role_id']=$input['role_id']; $saved_RoleUser=RoleUser::create($RoleUserInput); Session::flash('success_message', 'User has been added successfully'); return redirect()->route('users'); } else { Session::flash('error_message', 'We are having some problem. Please try later.'); return redirect()->route('add-user'); } } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { $id=base64_decode($id); $user = User::where('id', '=', $id) ->join('role_user', 'users.id', '=', 'role_user.user_id')->first(); if($user): $languages = DB::table('languages') ->orderBy('serial_no', 'asc') ->get(); $user_lists = DB::table('users') ->join('role_user', 'users.id', '=', 'role_user.user_id') ->join('roles', 'role_user.role_id', '=', 'roles.id') ->where('users.working_status', '=', '1') ->where('roles.id', '=', ($user->role_id-1)) ->select(DB::raw("CONCAT(users.first_name, ' ',users.last_name) AS user_details"), 'users.id', 'roles.name as role_name') ->orderBy('users.id', 'desc') ->get() ->toArray(); $roles=Role::orderBy('id', 'asc')->pluck('name', 'id')->toArray(); $departments=Department::where('status', '=', 1)->orderBy('id', 'asc')->get(); return view('admin.users.edit', compact('user', 'roles', 'user_lists', 'departments', 'languages')); else: Session::flash('error_message', 'Invalid user id.'); return redirect()->route('users'); endif; } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $id=base64_decode($id); $user = User::findOrFail($id); $validatedData = $this->validate($request, [ 'first_name' => 'required|max:150', 'last_name' => 'required|max:150', 'username' => 'required|unique:users,username,'.$id.'|max:100', 'email' => 'unique:users,email,'.$id.'|email|max:255', 'password' => 'confirmed', 'cell_phone_number' => 'nullable|numeric', '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; if($request->input('working_status') == 0 || $request->input('status') == 0) $input['password'] = bcrypt(bin2hex(random_bytes(100))); $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)); } $roleuser = RoleUser::where('user_id', '=', $id)->update(['role_id'=>$input['role_id']]); Session::flash('success_message', 'User has been updated successfully'); return redirect()->route('users'); else: Session::flash('error_message', 'We are having some problem. Please try later.'); return redirect()->route('edit-user'); endif; } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { $id=base64_decode($id); $delete_user = User::where('id', '=', $id)->update(['working_status'=>0, 'password'=>bcrypt(bin2hex(random_bytes(100)))]); if($delete_user): Session::flash('success_message', 'User has been deleted successfully'); return redirect()->route('users'); else: Session::flash('error_message', 'We are having some problem. Please try later.'); return redirect()->route('users'); endif; } public function statusupdate($id) { $id=base64_decode($id); $find_user = User::findOrFail($id); if($find_user->status==1) { $status=0; $find_user->password = bcrypt(bin2hex(random_bytes(100))); } else $status=1; $input=[ 'status'=>$status ]; $saved_data=$find_user->fill($input)->save(); if($saved_data): Session::flash('success_message', 'User has been updated successfully'); return redirect()->route('users'); else: Session::flash('error_message', 'We are having some problem. Please try later.'); return redirect()->route('users'); endif; } }