Criar uma tela de acesso negado - Laravel

Eu quero usar template do site e coloca no meio uma mensagem “Você não tem permissão para acessar essa página” por padrão ele fica do jeito que está na imagem, em que arquivo eu tenho que modificar ?

Vai depender da maneira que você está utilizando, como você está fazendo, rotas, controller, permissão e autenticação.

Falando rapidamente talvez criar um middleware e redirecionar por ela.

É possível criar uma view onde caso usuário não tenha permissão de acessar caia nela ? Porque é a primeira vez que chego a mexer nesse tipo de tratamento, você tem exemplo ?

Sim é possivel, mas, pelo visto você está aprendendo Laravel e talvez pulando etapas.

Seguinte a tela dá um erro 403 é acesso negado ou não autorizado, e logo abaixo tem a linha e o controller do problema:

  • UsuarioController.php na linha 21

O que tem nessa linha ou melhor o que tem no código completo desse controller?

Você fez um bloqueio por rota, ou seja, na rota tem alguma proibição ou melhor poste a rota completa e se tiver proibição ela também.

Observe o seguinte, nós não vemos o seu código, fica difícil interpretar sem ver eu mexo com Laravel então posso direcionar, mas, eu não (desculpa) consigo adivinhar.

Conseguir resolver chamando um blade mesmo dentro do if e vai um atributo que defini nas seed

Seed - database > seeds

<?php

    use Illuminate\Database\Seeder;
    use App\Permissao;
   class PermissaoSeeder extends Seeder {
            public function run(){
                 $usuarios1 = Permissao::firstOrCreate([
                          'nome' =>'usuario-view',
                          'descricao' =>'Acesso a lista de Usuários'
                 ]);
                       

                        // Resto do Código
            }
   }

Como estava a function index

 public function index()
{
    
    if(Gate::denies('usuario-view')){
        abort(403,"Acesso não autorizado");
    }
    
    $usuarios = User::all();
    $caminhos = [
        ['url'=>'/admin','titulo'=>'Painel'],
        ['url'=>'','titulo'=>'Usuários'],
        
    ];
    return view('admin.usuarios.index',compact('usuarios','caminhos'));
}

Depois da Modificação

public function index()
{
    
    if(Gate::denies('usuario-view')){
        return view('dashboard.sempermissao');
    }
    
    $usuarios = User::all();
    $caminhos = [
        ['url'=>'/admin','titulo'=>'Painel'],
        ['url'=>'','titulo'=>'Usuários'],
        
    ];
    return view('admin.usuarios.index',compact('usuarios','caminhos'));
}

Print do blade mostrando erro caso usuário não tenha acesso a pagina

Screenshot_264

Eu criei o blade em resources > views > dashboard > acessonegado.blade.php

Blade em html

@extends('layouts.app') @section('content')
 <style>
h1{
	
	color: orange;
	font-weight: bold;
	font-family: Arial Black;
	text-align: center;
}
</style>
<div class="container">

<div class="row">
</div>
<div class="row">
  
    <div class="col s12">
        <div class="card-panel white">
            <form class="form-horizontal">
             
                <div class="row">
                  
                    <div class="row"></div>
                    <div class="col s12">
						<h1>404</h1></br>
						
						<h2 class = "center">Página não encontrada :/</h2></br>
						<h5 class = "center">Desculpe, A página que você está procurando não existe no site....</h5></br>
                    </div>    
                </div>    
            </form>
                
          </div> 
      </div>
     </div>
  </div>    
@endsection
1 curtida

Parabéns por deixa a sua contribuição aqui, mas, eu vou te alertar de uma coisa, se você tivesse colocado o seu controller na pergunta daríamos a resposta com certeza.

Bom resolveu e está certo o que fez.