Curso Tienda Delivery Flutter y Laravel

Lección 14: Roles de usuario

Para establecer roles de usuario en una aplicación web en Laravel, es necesario declarar dos modelos role y role_user con sus relaciones y migraciones.

Para establecer roles de usuario en una aplicación web en Laravel, es necesario declarar dos modelos role y role_user con sus relaciones y migraciones.

Pasos:

Para establecer roles de usuarios puedes seguir los siguientes pasos:

  1. Crear modelos role y role_user
  2. Establecer sus relaciones
  3. Crear las migraciones y migrar
  4. Crear un middleware e implementarlo
  5. Declarar el middleware en kernel.php
  6. Modificar y ordenar las rutas de acuerdo al ingreso del usuario segun el rol.
  7. Modificar y validar el registro del usuario asignando un rol automáticamente
  8. Modifiar y validar el controlador del login para redirigir al usuario según el rol que tiene establecido.

Veamos parte del código del controlador del registro

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
...
...
use Illuminate\Foundation\Auth\RegistersUsers;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;

class RegisterController extends Controller
{
   

    use RegistersUsers;

   
    protected $redirectTo = RouteServiceProvider::HOME;

    public function __construct()
    {
        $this->middleware('guest');
    }

    
    protected function validator(array $data)
    {
        return Validator::make($data, [
            'name' => ['required', 'string', 'max:255'],
            'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
            'password' => ['required', 'string', 'min:8', 'confirmed'],
        ]);
    }

    /**
     * Create a new user instance after a valid registration.
     *
     * @param  array  $data
     * @return \App\User
     */
    protected function create(array $data)
    {
        $user = User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => Hash::make($data['password']),
        ]);
        $user->roles()->attach(Role::where('name','cliente')->first());
        return $user;
    }

    protected function redirectTo(){
        if(Auth::user()->hasRole('cliente')){
           ...
        }
        return "/";
    }
}

 


Contenido premium

Accede a todos los recursos y videos, explicación, scripts y código fuente con la suscripción premium

SUSCRÍBETE

Roles de usuario

© Todos los derechos reservados CODEA APLICACIONES | Comunidad de programación web y desarrollo de aplicaciones móviles | 2020