klasss Posted February 28, 2022 at 04:40 PM Report Share #625493 Posted February 28, 2022 at 04:40 PM Olá a todos, Estou aqui com um pequeno problema ao criar uma página para fazer a alteração do próprio perfil. Criei o seguinte botão : {{route('utilizadores.edit_perfil', $id_utilizador)}} Route: Route::get('Utilizadores/{item}/edit_perfil', [FuncionarioController::class, 'edit_perfil'])->name('utilizadores.edit_perfil'); está tudo a funcionar ..mas o link que aparecer é o seguinte : http://127.0.0.1:8000/Utilizadores/9/edit_perfil caso altere o ID, neste caso de 9 para 10, vou conseguir ver o perfil de outro utilizador. Existe alguma forma de contornar ? Link to comment Share on other sites More sharing options...
tiago.f Posted February 28, 2022 at 04:49 PM Report Share #625494 Posted February 28, 2022 at 04:49 PM (edited) Olá. Antes de mais, já viste o laravel-jetstream? Traz tudo pronto para gestão de users. Quanto à tua questão, a solução aqui é no teu controlador validares se o user logado é o do perfil respectivo. Se não for, retornas uma excepção de não autorizado. Algo como (não testei): class FuncionarioController extends Controller { public function edit_perfil($request, $item) { if($item !== Auth::id()) { abort(403); } // chegando aqui, está autorizado } } Notas: - nao te esqueças de importar as classes Controller e Auth - há maneira mais ... limpas de fazer isto, usando por exemplo form requests, que podes investigar. EDIT - neste opção usamos o route model binding do laravel https://laravel.com/docs/9.x/routing#route-model-binding class FuncionarioController extends Controller { public function edit_perfil(Request $request, User $item) { abort_unless($item->is(Auth::user(), 403); // chegando aqui, está autorizado } } Edited February 28, 2022 at 04:54 PM by tiago.f Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now