0
respostas

Permissões Laravel 8

Bom dia pessoal! Estou com a seguinte situação:

Estou desenvolvendo uma aplicação de publicar artigos, onde é possível um determinado usuário publicar artigos, e os usuário poderão visualizar artigos de outros usuários.

Para backend estou usando Laravel 8 e para frontend o VueJs.

Api.php

Route::middleware('jwt.auth')->group(function () {
    Route::apiResource('article', ArticleController::class);
});

Uso o ApiResource, e tenho os seguinte métodos: index, store, show, update e destroy. ArticleController.php

public function show(Article $article)
    {
        return new ArticleResource($article);
    }

O meu problema é o seguinte:

  • O usuário A deseja editar um artigo que ele mesmo publicou então ele acessou a pagina de editar o formulário do artigo (edit-article/10). Ele chamou o método show para visualizar os dados desse artigo.

  • O usuário B deseja apenas visualizar o artigo do usuário A (article/10). Usou o método show

  • Mas caso o usuário B acesse o formulário de editar, ele pode estar alterando o id do artigo na URL e assim acessando o artigo de outro usuário e podendo editar.

Ou seja, eu gostaria em que alguma determinada situação permitisse o acesso ao método show e em outra situação não permitisse o acesso ao método.

Obrigado pessoal!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software