You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
		
		
		
		
		
			
		
			
				
					
					
						
							49 lines
						
					
					
						
							1.5 KiB
						
					
					
				
			
		
		
	
	
							49 lines
						
					
					
						
							1.5 KiB
						
					
					
				| <?php | |
| 
 | |
| namespace App\Http\Controllers; | |
| 
 | |
| use App\Http\Requests\ProfileUpdateRequest; | |
| use App\Models\User; | |
| use Illuminate\Contracts\Auth\MustVerifyEmail; | |
| use Illuminate\Http\RedirectResponse; | |
| use Illuminate\Http\Request; | |
| use Illuminate\Support\Facades\Auth; | |
| use Illuminate\Support\Str; | |
| use Illuminate\Support\Facades\Redirect; | |
| use Illuminate\Support\Facades\Storage; | |
| use Inertia\Inertia; | |
| use Inertia\Response; | |
| 
 | |
| class ProfileController extends Controller | |
| { | |
|     /** | |
|      * Display the user's profile form. | |
|      */ | |
|     public function edit(Request $request): Response | |
|     { | |
|         return Inertia::render('Profile/Edit', [ | |
|             'mustVerifyEmail' => $request->user() instanceof MustVerifyEmail, | |
|             'status' => session('status'), | |
|         ])->with("user", ((object)Auth::user())->jsonSerialize()); | |
|     } | |
| 
 | |
|     /** | |
|      * Update the user's profile information. | |
|      */ | |
|     public function update(ProfileUpdateRequest $request): RedirectResponse | |
|     { | |
|         $request->validated(); | |
|         $user = User::find(Auth::user()->id); | |
|         $file = 'profiles/'. Str::random(8) . "_" . pathinfo($request->path, PATHINFO_BASENAME); | |
|         Storage::disk("s3")->move($request->path, $file); | |
|         $user->update([ | |
|             "name" => $request->name, | |
|             "totem" => $request->totem ?? "", | |
|             "tel" => $request->tel ?? "", | |
|             "contactable" => intval($request->contactable), | |
|             "path" => $file ?? "profiles/none.svg", | |
|         ]); | |
| 
 | |
|         return redirect(route('profile.edit')); | |
|     } | |
| }
 | |
| 
 |