Hola, estoy usando Laravel 4 y uso los procedimientos de laravel para logearme, osea uso Auth, sin embargo el sistema que estoy realizando debe contar con logeo para adiministradores, o usuarios del sistema (modifican productos, etc, etc) y logeo tambien para usuarios normales para realizar compras.
Pero obviamente tener registros de administradores y usuarios normales en la misma tabla es una mala practica. Que es lo que deberia hacer en este caso?
Gracias
entre Desarrolladores
Recibe ayuda de expertos
Registrate y pregunta
Es gratis y fácil
Recibe respuestas
Respuestas, votos y comentarios
Vota y selecciona respuestas
Recibe puntos, vota y da la solución
Pregunta
Logeo con 2 tablas en Laravel (Auth)
- preguntó
- Web
- 2656 Vistas
- 1 Respuestas
- solucionada
1 Respuesta
Hola @christian_avalos, al crear dos tablas para usuarios como bien dices no sería una buena práctica, te doy una mejor forma de manejar a tus usuarios, puedes crear un sistema de permisos y grupos de esta forma asignamos a los usuarios un grupo que cuenta con varios permisos, llamemos a las tablas: permissions
, groups
y group_permission
usuarios
contendra una columna para el grupo o bien una tabla que haga de referencia entre los usuarios y los grupos.
id (int) | group_id (int) | username (varchar) | email (varchar)
1 1 | christian_avalos | [email protected]
groups
contendrá a los grupos de usuario, un nombre y una descripción (opcional), su estructura podría ser:
id (int) | name (varchar) | description (varchar)
1 Administrador ...
2 Regular ...
permissions
contendra los permisos como variables en camel case y una descripcion (opcional)
id (int) | name (varchar) | description (varchar)
1 can_modify_products | puede modificar productos
2 can_shop_products | puede comprar productos
group_permission
contendra la relación entre los grupos y los permisos así como un campo que especifique si esta permitido ese permiso, su estructura puede ser la siguiente:
group_id (int) | permission_id (int) | allowed (tinyint)
1 | 1 | 1
1 | 2 | 1
2 | 1 | 0
2 | 2 | 1
de modo que tendrias en laravel los modelos User, Group y Permission
el modelo Group puede contener lo siguiente:
public function permissions()
{
return $this->belongsToMany('permission');
}
public function hasPermission($permission)
{
return in_array($permission, array_fetch($this->permissions->toArray(), 'name'));
}
el modelo User lo siguiente:
public function group()
{
return $this->belongsTo('Group');
}
con esto puedes manejar a tus usuarios de mejor manera.
$user = User::find(1);
if( $user->group->id == 1 )
{
// el usuario es administrador
}
if( $user->group->hasPermission('can_modify_product') )
{
// el usuario puede modificar productos
}
if( $user->group->hasPermission('can_shop_products') )
{
// el usuario puede hacer compras a productos
}
saludos!
Por favor, accede o regístrate para añadir un comentario.
Por favor, accede o regístrate para responder a esta pregunta.
En el blog
-
- 689575
- 1
- Jul 5, 2015
Sin Respuesta
-
- 80
- 0
- Oct 18
-
- 166
- 0
- Jul 9
-
- 535
- 1
- Mar 19
-
- 408
- 2
- Feb 26
-
- 4725
- 0
- Nov 7, 2023
-
- 479
- 0
- Sep 19, 2023
-
- 464
- 0
- Ago 21, 2023
-
- 637
- 0
- May 14, 2023
- ver todas
Actividad Reciente
alyvrs preguntó Oct 19
Ayuda , necesito mostrar datos creados solo por el…ManHol preguntó Jul 9
pasar un archivo de excel a csv en pythonArtEze respondió Abr 24
Alguien sabe, no me ignorenArtEze seleccionó una respuesta Abr 24
Bajar extensión de Chrome sin actualizar el navega…ArtEze respondió Abr 24
Bajar extensión de Chrome sin actualizar el navega…ArtEze preguntó Abr 24
Bajar extensión de Chrome sin actualizar el navega…ArtEze respondió Abr 24
No me deja instalar OracleArtEze respondió Abr 24
Formulario que guarde los datos de un jsonArtEze comentó Abr 24
Script /boot/ scrapingSantiago2610 comentó Mar 23
Acualizar ChoiceField en django
Ultimas Preguntas
Usuarios Top
- Leonardo-Tadei
- 227320 Puntos
- Peter
- 150480 Puntos
- white
- 75880 Puntos
- carlossevi
- 63580 Puntos
- magarzon
- 30650 Puntos
- pregunton
- 20400 Puntos