fileStorageService = $fileStorageService; } public function profile() { return Inertia::admin('Settings/User/Profile', []); } public function updateData(SettingProfileRequest $request , User $user) { if (Auth::id() !== $request->route('user')->id) { abort(403); } $user->update($request->validated()); return response($user, 200); } public function uploadAvatar(Request $request){ $request->validate([ 'file' => 'required|mimes:png,jpg,jpeg,gif|max:10240' ]); $user = Auth::user(); if (!empty($user->profile_url)) { if ($file = Medium::where('url', $user->profile_url)->first()) { $this->fileStorageService->deleteMedium($file); } } $file = $request->file('file'); $fileRecord = $this->fileStorageService->storeFile($file, 'public', 'profile'); $user->update(['profile_url' => $fileRecord->url]); return response(['profile_url' => $fileRecord->url], 200); } public function security() { return Inertia::admin('Settings/User/Security', []); } public function sessions() { $userSessions = Session::where('user_id', Auth::id())->get(); $sessions = SessionsIndexResource::collection($userSessions)->toArray(request()); return Inertia::admin('Settings/User/Sessions', compact('sessions')); } public function deleteSession(Session $session){ $state = Session::where([ 'id' => $session->id, 'user_id' => Auth::id(), ])->delete(); if ($state){ session()->flash('success', 'نشست مورد نظر حذف شد'); return response(null, 200); }else{ session()->flash('error', 'نشست مورد نظر یافت نشد!'); return response(null, 400); } } public function bulkDelete(Request $request) { Session::whereIn('id', $request->ids)->delete(); session()->flash('success', 'نشست های مورد نظر با موفقیت حذف شدند.'); return response(null, 200); } public function changePassword(Request $request) { $fields = $request->validate([ 'password' => 'required|min:8', 'newPassword' => 'required|min:8|confirmed', ]); $user = Auth::user(); if (!Hash::check($fields['password'], $user->password)){ return response()->json([ 'message' => 'پسورد فعلی نادرست است' ], 401); } $user->update([ 'password' => Hash::make($fields['newPassword']), ]); session()->flash('success', 'تغییر کلمه عبور با موفقیت انجام شد.'); return response(null, 200); } }