Meus sites
Sites relevantes
Contato
Sejam bem vindos
Fabrício Web Home Page

Desenvolvimento PHP Laravel, Manutenção em sites PHP, Arquitetura de serviços Web, Geração de endpoints REST API e Tutoriais.
Fabrício Web Home Page
Desenvolvimento PHP Laravel, Manutenção em sites PHP, Arquitetura de serviços Web, Geração de endpoints REST API e Tutoriais.
Sejam bem vindos à página Fabrício Web. Eu sou o Fabrício Dias.
Passarei aqui uma parte significativa de minha experiência. Acompanhe minhas publicações. Vou publicar amenidades nerds também. O site está em desenvolvimento, e vou colocar melhorias ainda. E com certeza vou adicionar interação com o leitor em breve.
Laravel - Separando usuários e permissões em uma aplicação Laravel
Em uma aplicação web, algumas vezes é necessário separar papéis para pessoas diferentes. Em uma loja por exemplo, haverá o administrador, o operador, o financeiro, a gerência, o comprador, etc... para isso criaremos um middleware para cada um dos papéis. Acompanhe aqui a criação do middleware para um administrador - mas a regra pode ser usada para N papéis.
Na raiz do projeto, execute:
php artisan make:middleware IsAdmin |
1 - Adicione no final do arquivo app/http/kernel.php a linha
'admin' => \App\Http\Middleware\IsAdmin::class, |
2 - Edite o arquivo isAdmin.php
<?php
namespace App\Http\Middleware;
use Closure; use Auth;
class IsAdmin { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { if (Auth::user() && Auth::user()->tipo == 'admin') { return $next($request); }
return redirect('noaccess'); } } |
3 - Aplique a rota do administrador às outras rotas
Route::group(['middleware' => 'App\Http\Middleware\IsAdmin'], function() { //Demais rotas aqui }); |
4 - Adicione a coluna 'tipo' em sua tabela users no banco de dados. Os administradores terão esse campo com valor 'admin'.
Assim, seu middleware "administrador" está pronto. Lembre-se, da mesma maneira podemos implementar outros papéis, basta atribuir somente as rotas que um middleware irá acessar no grupo de rotas.