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
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
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.