trans('users.title')] ); $auth_user = AuthHelper::authSession(); $assets = ['data-table']; $headerAction = 'Add User'; return $dataTable->render('global.datatable', compact('pageTitle','auth_user','assets', 'headerAction')); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { $roles = Role::where('status',1)->get()->pluck('title', 'id'); return view('users.form', compact('roles')); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(UserRequest $request) { $request['password'] = bcrypt($request->password); $request['username'] = $request->username ?? stristr($request->email, "@", true) . rand(100,1000); $user = User::create($request->all()); storeMediaFile($user,$request->profile_image, 'profile_image'); $user->assignRole('user'); // Save user Profile data... $user->userProfile()->create($request->userProfile); return redirect()->route('users.index')->withSuccess(__('message.msg_added',['name' => __('users.store')])); } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { $data = User::with('userProfile','roles')->findOrFail($id); $profileImage = getSingleMedia($data, 'profile_image'); return view('users.profile', compact('data', 'profileImage')); } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { $data = User::with('userProfile','roles')->findOrFail($id); $data['user_type'] = $data->roles->pluck('id')[0] ?? null; $roles = Role::where('status',1)->get()->pluck('title', 'id'); $profileImage = getSingleMedia($data, 'profile_image'); return view('users.form', compact('data','id', 'roles', 'profileImage')); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(UserRequest $request, $id) { // dd($request->all()); $user = User::with('userProfile')->findOrFail($id); $role = Role::find($request->user_role); if(env('IS_DEMO')) { if($role->name === 'admin'&& $user->user_type === 'admin') { return redirect()->back()->with('error', 'Permission denied'); } } $user->assignRole($role->name); $request['password'] = $request->password != '' ? bcrypt($request->password) : $user->password; // User user data... $user->fill($request->all())->update(); // Save user image... if (isset($request->profile_image) && $request->profile_image != null) { $user->clearMediaCollection('profile_image'); $user->addMediaFromRequest('profile_image')->toMediaCollection('profile_image'); } // user profile data.... $user->userProfile->fill($request->userProfile)->update(); if(auth()->check()){ return redirect()->route('users.index')->withSuccess(__('message.msg_updated',['name' => __('message.user')])); } return redirect()->back()->withSuccess(__('message.msg_updated',['name' => 'My Profile'])); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { $user = User::findOrFail($id); $status = 'errors'; $message= __('global-message.delete_form', ['form' => __('users.title')]); if($user!='') { $user->delete(); $status = 'success'; $message= __('global-message.delete_form', ['form' => __('users.title')]); } if(request()->ajax()) { return response()->json(['status' => true, 'message' => $message, 'datatable_reload' => 'dataTable_wrapper']); } return redirect()->back()->with($status,$message); } }