para empezar:
crear el
controller UsersController y la function index()
vista index.blade.php
para la bd:
creamos una migration para agregarle el campo "role" a la tabla User
ejecutarla
php artisan migrate
con el cliente de bd editar el campo de algunos registros y ponerle a algunos admin y a otros moderador y operadores, para el ejemplo supongamos que los usuarios 'admin' y 'moderador' tienen acceso al listado de usuarios.
entonces, creamos
el metodo en User
function hasRoles(array $roles){
foreach($roles as $role){
if($this->role === $role){
return true;
}
}
return false;
}
entonces, esta funcion nos puede servir para usar como condicion en el menu para mostrar o no, la opcion "Usuarios"
@if( auth()->user()->hasRoles(['admin','moderador'])
<li class="nav-item {{ activeMenu('users') }}">
<a class="nav-link" href="{{ route('users.index') }}" >Usuarios</a>
</li>
@endif
ahora tenemos que hacer que la url sea solo accesible por los usuarios con esos roles, entonces,
creamos un middleware:
php artisan make:middleware CheckRoles
public function handle($request, Closure $next)
{
$roles = array_slice(func_get_args(), 2);
if(auth()->user()->hasRoles($roles)){
return $next($request);
}
return redirect('/');
}
donde:
func_get_args() trae todos los parametros que se envian en la llamada al middleware
array_slice(func_get_args(), 2) excluye a los 2 primeros ($request y $next) para quedarse con los restantes que serian la lista de roles validos
no olvidar registrar el middleware en el kernel.php
'checkRoles' => \App\Http\Middleware\CheckRoles::class,
finalmente, en el constructor de UsersController
public function __construct(){
$this->middleware(['auth','checkRoles:admin,moderador']);
}
Suscribirse a:
Enviar comentarios (Atom)
linux ubuntu mint actualizar chrome
desde una terminal: $ sudo apt update $ sudo apt install google-chrome-stable
-
por consola y desde la raiz de tu proyecto php artisan --version
-
en nuestro proyecto creamos una carpeta llamada donde estaran todas nuestras clases, por ejemplo una llamada: MiApp adentro de esta irian b...
-
Integridad al nivel de la base de datos Oracle Oracle valida la integridad de la base de datos y presenta los siguientes mensajes de erro...
No hay comentarios:
Publicar un comentario