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.webp", | 
						|
        ]); | 
						|
 | 
						|
        return redirect(route('profile.edit')); | 
						|
    } | 
						|
}
 | 
						|
 |